wpjr2’s Weblog

Artigos e tutoriais úteis

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

Escrito por 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 um comentário

XHTML: Você pode usar estas tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>