Buscar

Aula 11 - Herança Python

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Herança
Python
Prof. Anderson Barroso anderson.santos@souunit.com.br
Herança - conceito
• O principal mecanismo do recurso da herança é permitir que 
uma classe possa ser derivada de uma classe base, 
permitindo que um comportamento mais especifico seja 
implementado na subclasse;
• A herança, é também uma importante característica para o 
reuso de algoritmos e evitar códigos redundantes que 
possam tornar difícil a manutenção da base de códigos.
• Declarar uma classe e, entre parênteses, outra classe, 
significa que a externa herda da interna:
• Classe1(Classe2):
• Classe1 herda de Classe2
Herança - exemplo
Herança – Continuando com o nosso Banco
• Como toda empresa, nosso banco possui funcionários. Um 
funcionário tem um nome, um cpf e um salário. Vamos modelar a 
classe Funcionário;
• Além de um funcionário comum, há também outros cargos, como 
os gerentes;
• Os gerentes guardam a mesma informação que um funcionário 
comum, mas possuem outras informações próprias, além de ter 
funcionalidades um pouco diferentes;
• Um gerente no nosso banco possui também uma senha numérica 
que permite o acesso ao sistema interno do banco, além do 
número de funcionários que ele gerencia.
Herança – Continuando com o nosso Banco
Sem Herança
Precisamos repetir todos os 
atributos e características de 
Funcionário em Gerente
Herança – Continuando com o nosso Banco
Com Herança
Só precisamos criar os atributos 
e características específicos de 
Gerente
Herança – Continuando com o nosso Banco
• Como a classe Gerente já possui 
um construtor __init__() com seus 
atributos, o método da classe 
Funcionário é sobrescrito pelo 
Gerente;
• Para Gerente acessar as 
características de Funcionário
(nome, cpf e salário, por 
exemplo) devemos inicializar a 
classe Funcionário dentro do 
construtor de Gerente.
Herança – Continuando com o nosso Banco
• Dizemos que a classe Gerente herda todos os atributos e métodos da 
classe pai Funcionário;
• Na classe filha, Gerente, precisamos garantir que todos os atributos de 
Gerente e do seu pai serão inicializados;
• Para isso, ao instanciar um Gerente, precisamos passar os atributos de 
Funcionário também.
Herança – Continuando com o nosso Banco
• Agora vem a SACADA da Herança:
• Não precisamos inicializar os atributos NOME, SENHA e SALARIO dentro de 
Gerente, apenas chamamos o construtor de Funcionário e passamos os 3 atributos 
como parâmetro.
• Todo método da classe pai que quisermos chamar, DEVEMOS utilizar o modificador 
chamado super(). Toda vez que uso super() em uma classe filha, estou me 
referindo a algo da classe pai.
Herança – Continuando com o nosso Banco
• Podemos ter uma classe Sub-Gerente herdando de gerente que por sua 
vez herda de Funcionário;
• Isso quer dizer que Sub-Gerente também tem NOME, CPF e SALÁRIO de 
funcionário; SENHA e QTD_FUNCIONÁRIOS de Gerente;
• Além disso, pode ter seus atributos próprios. A lógica será a mesma 
anterior.
• Vamos tentar?
Herança – Avô, Pai e Filho
Avô Pai
Filho
Herança – Por que reescrever métodos?
• Todo fim de ano, os funcionários do nosso banco recebem uma bonificação;
• Os funcionários comuns recebem 10% do valor do salário e os gerentes, 15%.
• A classe Funcionário teria o seguinte método:
Pergunta:
A Classe Gerente poderia usar esse 
método do seu pai ou teria que ter 
o seu próprio método?
Herança – Por que reescrever métodos?
• No Python, quando herdamos um método, podemos alterar seu comportamento. 
Podemos reescrever (sobrescrever, override) este método, assim como fizemos 
com o construtor __init__:
Herança – Vamos colocar o método imprimir() 
dentro das classes
• Agora vamos criar os métodos imprimir nas classes:
Avô
Pai
Filho
Herança Múltipla
• E se quisermos que uma classe filha herde de mais de uma classe Pai?
• Imagine que temos uma classe Diretor e outra classe Presidente;
• No nosso banco temos também o cargo Diretor-Presidente, logo teremos a classe 
Diretor-Presidente;
• Podemos dizer que essa classe herda características de Presidente e de Diretor, 
além de ter as suas próprias.
• Em linguagens como JAVA não temos o conceito de Herança Múltipla.
• Mais em: https://www.caelum.com.br/apostila-python-orientacao-
objetos/heranca-multipla-e-interfaces/
https://www.caelum.com.br/apostila-python-orientacao-objetos/heranca-multipla-e-interfaces/
Exercícios - 01
• Criar uma classe chamada Animal
• A classe Animal deve conter os seguintes atributos:
• nome;
• raça;
• idade;
• Criar um construtor passando nome, raça e idade do animal;
• Criar os métodos get e set necessários para os atributos acima;
• Criar um método imprimir(), cuja saída deve ser a impressão dos atributos do animal 
como no exemplo abaixo:
Nome : XXXXX
Raça : YYYYY
Idade : 0
Exercícios - 01
• Criar uma classe chamada Passaro
• A classe Passaro deve herdar da classe Animal e tem seguinte atributo bolleano:
• cantador;
• Criar um construtor passando nome, raça, idade e a característica cantador do pássaro 
(chamar o construtor da classe Animal);
• Criar os métodos get e set necessários para o atributo adicional acima;
• Criar um método imprimir() que deve chamar o método imprimir da classe Animal e 
imprimir o atributo adicional (cantador); a saída deve ser a impressão de todos os 
atributos do pássaro como no exemplo abaixo:
Nome : Piupiu
Raça : Canário Belga
Idade : 1
Cantador : Sim
Exercícios - 01
• Criar uma classe chamada Cachorro
• A classe Cachorro deve herdar da classe Animal, acrescentando o seguinte atributo 
bolleano:
• caçador;
• Criar um construtor passando nome, raça, idade e a característica caçador do cachorro 
(chamar o construtor da classe Animal);
• Criar os métodos get e set necessários para o atributo adicional acima;
• Criar um método imprimir() que deve chamar o método imprimir da classe Animal e 
imprimir o atributo adicional (caçador); a saída deve ser a impressão de todos os 
atributos do cachorro como no exemplo abaixo:
Nome : Totó
Raça : Vira-Lata
Idade : 4
Caçador : Não
Exercícios - 01
• Criar um programa principal chamado TestaAnimal
• Deve instanciar um Animal chamado “Genérico” sem raça e idade igual a 0, em seguida 
imprimir (método imprimir() de Animal) os dados deste animal como no exemplo abaixo:
Nome : Genérico
Raça : Sem Raça
Idade : 0
• Instanciar um Cachorro “Totó” da raça Labrador com 2 anos de idade, em seguida 
imprimir (método imprimir() de Cachorro) os dados deste cachorro como no exemplo 
abaixo:
Nome : Totó
Raça : Labrador
Idade : 2
Caçador : Muito Bom
•
Exercícios - 01
• Instanciar um Pássaro “Kaká” da raça Canário Belga com 1 ano de idade, em 
seguida imprimir (método imprimir() de Passaro) os dados deste pássaro como 
no exemplo abaixo:
Nome : Bichano
Raça : Labrador
Idade : 2
Cantador : Excelente

Continue navegando