Python/Conceitos básicos/Herança e polimorfismo

Origem: Wikilivros, livros abertos por um mundo aberto.

Voltar para a página inicial.


Deitel, em "Programando em Java", diz que "quando utilizamos herança para criar uma classe a partir da classe existente, a nova classe herda os atributos e comportamentos dessa classe existente, podendo adicionar atributos e comportamentos para solucionar nossas necessidades".

O polimorfismo condiz com a reutilização de código: é fato que ocorrem funções semelhantes em várias partes do software; então definimos estas funções em uma biblioteca, e todas as outras funções que dela precisarem poderão chamá-la sem a necessidade de reescrevê-la.


class Pessoa:
 
    def __init__(self, nome ='', idade=0):
       self.nome = nome
       self.idade = idade
 
    def getIdade(self):
       return self.idade
 
class PessoaCPF(Pessoa):
 
    def __init__(self, CPF, nome='', idade=0):
       Pessoa.__init__(self, nome, idade)
       self.CPF = CPF
 
 
a = Pessoa()
Pessoa.__init__(a, 'Leonardo', 22)
 
b = PessoaCPF('122.333.332-1', nome='', idade=0)
 
print a.nome   # imprime Leonardo
print a.idade  # imprime 22
print b.CPF    # imprime 122.333.332-1