| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/06/2006 16:25:26
|
ssousuke
Thread.start()
Membro desde: 04/04/2006 11:33:53
Mensagens: 28
Offline
|
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
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/06/2006 17:02:47
|
ze_kiefa
JavaGuru
![[Avatar]](/images/avatar/80c60e6ccca996995b273e51b04d6b9c.jpg)
Membro desde: 20/04/2006 09:57:07
Mensagens: 200
Localização: São Paulo, SP - Brasil
Offline
|
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.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/06/2006 17:19:14
|
Bjornn Borg
JavaChild
Membro desde: 25/03/2004 15:03:50
Mensagens: 140
Offline
|
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...
|
Tenha fé. O que é caro por R$ 10,00 poder ser barato por R$ 50,00 amanhã.
char[] name = {66,106,111,114,110,110,32,66,111,114,103};
char[] cert = {83,67,87,67,68,32,49,46,52}; |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/06/2006 19:14:32
|
Giuliano Mega
JavaBaby
Membro desde: 22/08/2005 19:01:35
Mensagens: 94
Offline
|
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....
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,
|
|
|
 |
|
|
|
|