Introdução ao Python/Herança e polimorfismo

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.[1]

Em Python, ao contrário das outras linguagens, todo objeto é 100% dinâmico, onde você pode definir propriedades adicionais a ele mesmo que não existam na classe originalmente, podemos ver isso no exemplo abaixo:

>>> 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('Leonardo', 22)
>>> b = PessoaCPF('122.333.332-1', nome=a.nome, idade=a.idade)
>>> print a.nome
Leonardo
>>> print a.idade
22
>>> print b.CPFhttp://pt.wikibooks.org/wiki/Python/Conceitos_b%C3%A1sicos/Heran%C3%A7a_e_polimorfismo
122.333.332-1

Referências

  Esta página é somente um esboço. Ampliando-a você ajudará a melhorar a Wikiversidade.