Formas de herança
Há várias formas de relacionamentos em herança:
- Extensão: subclasse estende a superclasse,
acrescentando novos membros (atributos e/ou métodos). A
superclasse permanece inalterada, motivo pelo qual este tipo de
relacionamento é normalmente referenciado como herança
estrita.
- Especificação: a superclasse especifica o que uma
subclasse deve oferecer, mas não implementa nenhuma
funcionalidade. Diz-se que apenas a interface (conjunto
de especificação dos métodos públicos) da superclasse é herdada
pela subclasse.
- Combinação de extensão e especificação: a
subclasse herda a interface e uma implementação padrão de (pelo
menos alguns de) métodos da superclasse. A subclasse pode então
redefinir métodos para especializar o comportamento em relação ao
que é oferecido pela superclasse, ou ter que oferecer alguma
implementação para métodos que a superclasse tenha declarado mas
não implementado. Normalmente, este tipo de relacionamento é
denominado herança polimórfica.
A última forma é, sem dúvida, a que mais ocorre na programação orientada a
objetos. Algumas modelagens introduzem uma forma de herança conhecida
como contração, que deve ser evitada.
©
Ivan Luiz Marques Ricarte
DCA/FEEC/UNICAMP
Last modified: Wed Jun 28 15:56:14 EST 2000