Estava estudando OO, e o autor do livro que lia citou como exemplo de Herança Múltipla uma classe Animal, da qual eram derivadas duas sub-classes (Ave e Mamífero) e dessas duas, uma outra classe (Ornitorrinco) era derivada.
Gostaria de pedir a cada um que me desse outros exemplos práticos de Herança Múltipla, para enriquecer meus estudos.
[quote=pcassiano]Estava estudando OO, e o autor do livro que lia citou como exemplo de Herança Múltipla uma classe Animal, da qual eram derivadas duas sub-classes (Ave e Mamífero) e dessas duas, uma outra classe (Ornitorrinco) era derivada.
[/quote]
Taxonomicamente esse exemplo está errado, pois na classificação dos seres vivos não há herança múltipla. Um animal pertence a uma espécie, que pertence a apenas um gênero, que pertence a apenas uma família, que pertence a apenas uma ordem, que pertence a apenas um filo (há algumas subdivisões que omiti), e não há como uma espécie (Ornitorrinco) pertencer a duas ordens diferentes (Aves e Mamíferos).
[color=orange]Como já mencionado, Java não permite que uma classe seja herdeira dos recursos de mais de uma outra classe. Esta [size=18]limitação é imposta para evitar que o programador possa cometer erros sutís e perigosos, caso ele quiser construir uma classe que herde de duas outras que possuem um método de mesmo nome (e tipos de argumentos), mas com implementações diferentes nas duas classes. Neste caso, haveria ambiguidade no funcionamento do método herdado. Do outro lado, a herança múltipla é um recurso poderoso, cujo total abandono limitaria bastante a linguagem.
A saida encontrada é o conceito de interface, que nada mais é que um conjunto de declarações de métodos (nome, tipo de retorno, tipos dos argumentos) desprovidos de implementação. Cabe ao programador que deseja implementar a interface em questão providenciar uma implementação destes métodos na classe que ele está desenvolvendo. [/size][/color]