Python/Conceitos básicos/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.
class Pessoa:
def __init__(self, nome ='', idade=0):
self.nome = nome
self.idade = idade
def getIdade(self):
return self.idade
class PessoaFisica(Pessoa):
def __init__(self, CPF, nome='', idade=0):
Pessoa.__init__(self, nome, idade)
self.CPF = CPF
class PessoaJuridica(Pessoa):
def __init__(self, CNPJ, nome='', idade=0):
Pessoa.__init__(self, nome, idade)
self.CNPJ = CNPJ
a = Pessoa()
Pessoa.__init__(a, 'Leonardo', 22)
b = PessoaFisica('122.333.332-1', nome='', idade=0)
banco = PessoaJuridica('00.000.000/0001-11', nome='Banco do Brasil', idade=435)
print a.nome # imprime Leonardo
print a.idade # imprime 22
print b.CPF # imprime 122.333.332-1
print banco.CNPJ # imprime 00.000.000/0001-11
Ver também
- Programação orientada a objetos/Herança - conceito