1. Baleias e vacas
Aqui está um fato zoológico interessante: uma vaca está muito mais próxima de uma baleia do que, por exemplo, de um hipopótamo. Acontece que vacas e baleias são parentes relativamente próximos.

Olhe aqui. Vamos falar sobre polimorfismo — outra ferramenta muito poderosa de OOP . Ele tem quatro recursos.
2. Herança não é uma panacéia
Imagine que você escreveu uma Cow
classe para um jogo. Tem muitos campos e métodos. Objetos desta classe podem fazer várias coisas: andar, comer e dormir. As vacas também usam um sino que toca quando elas andam. Suponha que você implementou tudo na classe nos mínimos detalhes.
E aí chega sua cliente e diz que quer lançar uma nova fase do jogo, em que toda a ação se passa no mar, e o personagem principal é uma baleia.
Você começa a projetar uma Whale
classe e percebe que ela é apenas ligeiramente diferente da Cow
classe. A lógica das duas classes é muito parecida e você decide usar herança.

A Cow
classe é ideal para assumir o papel da classe pai: ela possui todas as variáveis e métodos necessários. Tudo o que precisamos fazer é dar à baleia a capacidade de nadar. Mas há um problema: sua baleia tem patas, chifres e um sino. Afinal, essa funcionalidade é implementada dentro da Cow
classe. O que pode ser feito aqui?

3. Sobreposição de método
A substituição de método vem em nosso socorro. Se herdamos um método que não faz exatamente o que queremos em nossa nova classe, podemos substituir esse método por outro.

Como isso é feito? Em nossa classe descendente, declaramos o mesmo método que o método da classe pai que desejamos substituir. Nós escrevemos nosso novo código nele. E é isso — é como se o antigo método na classe pai simplesmente não existisse.
É assim que funciona:
Código | Descrição |
---|---|
|
|
|
Este código exibe o seguinte texto na tela:
|
|
Este código exibe o seguinte na tela:
|
Depois de herdar a Cow
classe e substituir o printName
método, a Whale
classe contém os seguintes dados e métodos:
|
Não conhecemos nenhum método antigo. |
GO TO FULL VERSION