15 Python - OO - Parte3 PDF
15 Python - OO - Parte3 PDF
– Orientação a
Objetos – Parte 3
Introdução à Programação
SI1
Herança
Pessoa
Aluno Professor
Herança
Animal
Mamifero Ave
superclasse Veículo
“é um”
“é um tipo de”
Terrestre Aéreo
subclasses
6
Herança
• Suponha que a classe
ClasseB herda de
ClasseA
• Um objeto da ClasseB
também é um objeto da
ClasseA
• Alterar m3() basta
modificar a ClasseA
7
Herança
• Exemplo:
Superclasse
(caracterísJcas comuns)
Subclasses
(caracterísJcas específicas)
8
Herança
Sobrecarga
• Redefinição de métodos já existente, com o
mesmo nome.
• Quando um método da classe pai é redefinido
na classe filha
• Diz-se que o método foi sobrecarregado
(overloaded).
Redefinindo Métodos
• Você pode redefinir métodos declarados na
superclasse
Redefinindo Métodos
• Você pode chamar o método da superclasse
Construtores
• Construtor da classe filha tem que chamar o
da classe pai
Chamando construtor da superclasse
Chamada ao
Superconstrutor.
(Sempre na
primeira linha do
construtor)
Herança
Exemplo
Exemplo
Exemplo
>>> p = Poupanca("1234",10)
>>> p.saldo
0.0
>>> p.taxaJuros
10
>>> p.creditar(1500)
>>> p.debitar(300)
>>> p.saldo
1200.0
>>> p.renderJuros()
>>> p.saldo
1320.0 18
Polimorfismo
• Polimorfismo literalmente significa várias
formas.
• Em Python, um método é polimórfico se ele
tem diferentes implementações numa família
de classes
• Ex:
– O operador ‘+’ é polimórfico à se refere a
diferentes operações quando usado, por exemplo,
em inteiros e strings
Exemplo
Informação sobre classes e instâncias
• Podemos perguntar se um objeto pertence a
uma classe:
EXERCÍCIOS
Exercícios
1. Crie uma classe chamada Ingresso, que possui
um valor em reais e um método imprimeValor()
– Crie uma classe VIP, que herda de Ingresso e
possui um valor adicional. Crie um método que
retorne o valor do ingresso VIP (com o adicional
incluído)
Exercícios
2. Crie uma classe chamada Forma, que possui os
atributos area e perimetro.
– Implemente as subclasses Retangulo e Triangulo, que
devem conter os métodos calculaArea e
calculaPerimetro. A classe Triangulo deve ter também
o atributo altura.
No código de teste crie um objeto da classe
Triangulo e outro da Classe Retangulo. Verifique se
os dois são mesmo instancias de Forma (use
isinstance) , e calcule a área de cada um.
Exercícios
3. Crie um programa que implemente o seguinte
diagrama de classes:
Exercícios
4. Considere as classes ContaCorrente e Poupanca
apresentadas em sala de aula. Crie uma classe
ContaImposto que herda de conta e possui um atributo
percentualImposto. Esta classe também possui um
método calculaImposto() que subtrai do saldo, o valor
do próprio saldo mulJplicado pelo percentual do
imposto. Crie um programa para criar objetos, testar
todos os métodos e exibir atributos das 3 classes
(ContaCorrente, Poupanca e ContaImposto).
26