Oi Pessoal,
De várias coisas que eu falo em sala de aula quando ensinando “Orientação a Objeto”, com certeza uma das que mais causa espanto por parte dos alunos é quando eu menciono o fato da linguagem java não suportar herança múltipla, pois bem, posso dizer com convicção que Java chegou onde chegou principalmente porque quem ajudou na evolução da linguagem eram pessoas de altíssimo nível e que tinham uma bagagem imensa em outras linguagens de programação.
Muitos dos criados da linguagem acreditavam que em um projeto de software, a necessidade de se ter herança múltipla era pouquíssima e que ainda se mesmo assim o programador quisesse fazer uso, este estaria correndo o risco de passar por muitos problemas de design no futuro.
Mas afinal, se um dia eu precisar de herança múltipla, como resolvo isso em Java, a resposta está no conceito de interfaces :
public class Filhote extends Cachorro, Gato{
}
Mas isso e possível
public class Filhote implements Cachorro, Gato {
}
Ou seja, uma determinada classe em Java pode implementar múltiplas interfaces e fazer uso de agregação para responder por chamadas a métodos que tecnicamente só poderiam acontecer se existisse a “herança múltipla”. Algo como:
public class Filhote implements ICachorro, IGato{
private Cachorro cachorro = new Cachorro();
private Gato gato = new Gato();
@override
public void latir(){
cachorro.latir();
}
@override
public void miar(){
gato.miar();
}
}
Super fácil né ?
Espero que tenham entendido…
Links úteis :
Abrcs.
Natanael Fonseca