wpjr2’s Weblog

Artigos e tutoriais úteis

Herança Múltipla: Anfíbios, animais terrestres e marinhos

Posted by wpjr2 em abril 20, 2008

A herança mútlipla de classes Java não é permitida pela linguagem. A alternativa para contornar esta limitação inclui a utilização de interfaces para representar cada tipo a ser representado pela classe. No exemplo abaixo, a classe Anfibio deve possuir características de animal terrestre e de animal marinho. Porém em cada uma dos ambientes definidos pela interface (terra e mar), o anfíbio se comportará somente com as características definidas para este ambiente.

As Interfaces AnimalMarinho e AnimalTerrestre

// define as operações de um animal marinho

interface AnimalMarinho{
void nadar();
}

// define as operações de um animal terrestre

interface AnimalTerrestre{
void andar();
}

A Classe Anfíbio
class Amfibio implements AnimalMarinho, AnimalTerrestre{
void andar(){…}
void nadar(){…}
}

Criando um Anfíbio

Anfibio a = new Anfibio();
a.nadar(); // o anfíbio sabe nadar
a.andar(); // o anfíbio sabe andar

Convertendo um anfíbio em um animal marinho

AnimalMarinho am = a;
am.andar(); // o animal marinho nâo sabe andar, ERRO
am.nadar(); // o animal mainho sabe nadar, OK

De acordo com a definição da interface AnimalMarinho, é somente possível nadar, não podendo por exemplo andar sobre a água. Desta forma, o animal marinho não possui a operação andar.

Convertendo um anfíbio em animal terrestre

AnimalTerrestre at = a;
at.andar(); // o animal terrestre sabe andar, OK
at.nadar(); // o animal terrestre não sabe nadar, ERRO

De acordo com a definição da interface AnimalTerrestre, é somente possível nadar, não podendo por exemplo andar sobre a água. Desta forma, o animal marinho não possui a operação andar.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: