Herança Multipla é um assunto muito complexo de C++. Antes de criar uma
classe com herança multipla voce deve saber muito bem o que está
fazendo. Não é possivel criar uma clase filho de duas classes que tem um
metodo foo com o mesmo signature.
Precisa saber que Herança multipla não é uma coisa muito usado nem em
C++. O caso que entra na minha cabeça é a classe iostream:
class stream{
}
class instream : public stream{
}
class outstream : public stream{
}
class iostream : public instream : public outstream{
}
sven
Jorge Martins wrote:
> Jean,
>
> Mas isso é um enorme problema. A última coisa que você deseja fazer com uma
> classe sua é mudar o nomes dos métodos. Todas as chamadas para este métodos
> terão que ser alteradas. E ainda há vezes que você simplesmente não pode
> mudar esses nomes, ou por não ter o código fonte, ou por que alguma outra
> entidade que chama esse método não pode ser alterada.
>
> E como é a escolha de qual método você irá herdar caso as duas (ou mais
> classes) pais tenham métodos com mesmo nome. Cada solução inventada acaba
> caindo em pequenos problemas, aumentando em muito o custo de implementação e
> a transparência fica prejudicada.
>
> Por causa disso, os desenvolvedores da linguagem java preferiram evitar a
> herança múltipla. E o uso de interface vem como uma solução alternativa
> (pois não há aproveitamento de código) para manter a verificação de tipo no
> uso de polimorfismo.
>
> abraços
>
> Jorge
>
> -----Original Message-----
> From: JEAN BARROS [mailto:[EMAIL PROTECTED]]
> Sent: segunda-feira, 12 de março de 2001 12:57
> To: [EMAIL PROTECTED]
> Subject: [java-list] Herança Múltipla
>
>
> Olá!
>
> Java suporta apenas herança simples, e implementa interfaces! certo?
> Os defensores da herança simples em detrimento da herança múltipla,
> geralmente
> argumentam que herança múltipla tem o problema da ambigüidade, que é muito
> difícil de resolver! Gostaria de saber onde está o problema de resolver
> ambigüidades? Pois se for apenas no nome de métodos, não ficaria fácil
> resolver alterando os nomes? Ou essa minha análise é muito simplista, e o
> problema é bem maior? Me esclareçam por favor esta dúvida!
>
>
> OBS: Não sou expert em C/C++, apenas quero tirar esta dúvida!
>
> Abraços
> Jean Fábio
>
>
> ____________________________________________________________________
> Get free email and a permanent address at http://www.netaddress.com/?N=1
>
> ------------------------------ LISTA SOUJAVA ----------------------------
> http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
> dúvidas mais comuns: http://www.soujava.org.br/faq.htm
> regras da lista: http://www.soujava.org.br/regras.htm
> para sair da lista: envie email para [EMAIL PROTECTED]
> -------------------------------------------------------------------------
>
> ------------------------------ LISTA SOUJAVA ----------------------------
> http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
> dúvidas mais comuns: http://www.soujava.org.br/faq.htm
> regras da lista: http://www.soujava.org.br/regras.htm
> para sair da lista: envie email para [EMAIL PROTECTED]
> -------------------------------------------------------------------------
>
>
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------