0% acharam este documento útil (0 voto)
103 visualizações

15 Python - OO - Parte3 PDF

O documento discute conceitos de orientação a objetos em Python, como herança e polimorfismo. Apresenta exemplos de como classes podem herdar atributos e métodos de outras classes superiores, permitindo redefini-los. Também mostra como métodos podem ter implementações diferentes dependendo da classe, de forma polimórfica.

Enviado por

anon_539136255
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
103 visualizações

15 Python - OO - Parte3 PDF

O documento discute conceitos de orientação a objetos em Python, como herança e polimorfismo. Apresenta exemplos de como classes podem herdar atributos e métodos de outras classes superiores, permitindo redefini-los. Também mostra como métodos podem ter implementações diferentes dependendo da classe, de forma polimórfica.

Enviado por

anon_539136255
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 26

Python

– Orientação a
Objetos – Parte 3

Introdução à Programação
SI1

Herança

Pessoa

Aluno Professor
Herança

Animal

Mamifero Ave

Cachorro Gato Gavião Galinha


Herança
•  Uma classe pode herdar a definição de outra
classe:
–  Permite uso ou extensão de métodos e atributos
previamente definidos em outra classe
–  Nova classe
•  Subclasse
–  Original
•  Classe pai, ancestral ou superclasse
•  Permite herança múlJpla
Herança

•  Uma classe pode ser definida a parJr de


outra já existente
•  Abstrai classes genéricas (superclasse), a
parJr de classes com propriedades (atributos
e operações) semelhantes
–  Modelar similaridades entre classes, preservando
diferenças
•  As subclasses herdam todas as propriedades
de sua superclasse
–  E possuem as suas próprias
Herança
¡  Relacionamento entre itens gerais (superclasses)
e itens mais específicos (subclasses)

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

Você também pode gostar