Herança Multipla

Alguém sabe o pq java nao tem herança multipla???

todo o lugar que eu leio diz que é por causa que herança multipla traz uma serie de problemas, etc… Mas ainda nao consegui enxergar esses problemas…

Por exemplo, dizem que na herança multipla pode haver um problema no polimorfismo, ou seja se tiver o mesmo metodo nas duas super classes. Mas para isso poderia ser resolvido da seguinte maneira: Sempre utilize o metodo da superclasse que foi declarada primeiro…
Ex:
public class A extends B, C {} // se houver algum metodo que fosse igual em B e em C seria executado o metodo de B

Sei lá… ainda nao consegui ver o ponto fraco de herença multipla (talvez seja pq nunca trabalhei com ela, quem sabe…), mas acho que deve haver uma boa explicacao para que java nao a tenha…

Valeu

Ola,

Bom, vc ja respondeu por que umas das razões de o porque Java não tem multipla herença…

A proposta que vc fez, de se ocorrer metodos iguais nas superclasses pega o da primeira… hummmm acho que isto não é nada bom, cheira a bacalha do brabo… vc já imaginou em run-time vc ter que descobrir quem foi a primeira declarada… seria necessario criar um indice… e ja imaginou, o camarada que vai fazer uma manutenção… olhar o javadoc, que não coloca as classes em ordem, e adivinar qual foi o metodo, que foi invocado atraves de polimorfismo, e que deu pau???

E sincerramente falando, eu já programa em C++, de brincadeira, a uns 4 anos e em Java, profissionalmente, uns 3/5 anos e nunca me vi numa situação de usar herança multipla…

Ha… e só pra complementar… a titulo de informação…

Este tópico surgiu a pouco tempo no RioGuj, e alguns integrantes defenderam a posição de que o java suporta sim a herença multipla, mas é implementado atraves de interfaces… vc pode implementar mais de uma interface por classe…

Bom, apesar de eu não concordar muito com esta visão… só repassando o que rolou lá…

Acho que o RioJug guarda o historico das mensagens… dá uma olhada lá pra ver o que rolou…

www.riojug.org

Pra que vc precisa de herança múltipla se existem design patterns como Strategy e State? :wink: