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

Talvez isso ajude.

http://www.portaljava.com/home/modules.php?name=Forums&file=viewtopic&t=9945&start=0&postdays=0&postorder=asc&highlight=
http://www.guj.com.br/posts/list/30/21616.java
http://ghostoffreedom.blogsome.com/2005/12/07/heranca-multipla-em-java/
http://ghostoffreedom.blogsome.com/heranca-multipla-em-java/

São referência de discussão apenas. Mas já vale a leitura.

Se vc tivesse um cara que herda de A e B. Se A tem uma propriedade nome e B tb, e na sua classe vc tenta usar o nome, como faria? Quando vc escrevesse nome, seria o nome de A ou B?

Se vc tivesse um cara que herdasse de cortina e relógio, talvez, se você fechasse a cortina não conseguisse mais ver as horas… Com herança múltipla você teria liberdade de fazer umas coisas bizarras…

Você está propondo um algoritmo de linearização. Linearização é a transformação de uma hierarquia numa lista. Há vários jeitos de fazer linearização - uns bons, outros nem tanto. Esse assunto já foi muito pesquisado e existem algoritmos coerentes e bacanas. Um dos meus algoritmos prediletos é o C3, descrito neste artigo:

http://www.webcom.com/haahr/dylan/linearization-oopsla96.html

Mesmo com esse algoritmo, no entanto, a herança múltipla ainda produz resultados estranhos às vezes. Além disso, na maior parte dos casos em que herança múltipla seria útil, o usuário está na verdade querendo usar traits http://en.wikipedia.org/wiki/Trait_%28abstract_type%29, que são menos complicados e mais fáceis de implementar de forma eficiente.

Abraços,