Polimorfismo

Continuando a discussão do Como fazer para substituir Fluxos condicionais por polimorfismo:

Aproveitando esta resposta, só não consigo entender esta última parte, nomeadamente, os parâmetros indicados…

public void fazerBarulho(Animal animal) {
animal.barulho();
}

Desta maneira é pratico, tira a necessidade de verificar o tipo do objeto pelo if else, se ele é cachorro, galinha e etc…

o método fazerBarulho(Animal animal) só vai aceitar objetos do tipo Animal ou seja, toda classe que extender de Animal poderá passar, Isso te dá a certeza que o objeto tem o método barulho( )
independente do tipo que ele seja, herdou da classe abstrata animal, tem que fazer barulho.

Exemplo:

fazerBarulho(cachorro); //Au au
fazerBarulho(leao); //Rugidooo!!!
fazerBarulho(foca); //waw waw
fazerBarulho(Carro); //Vai dar erro de compilação, pois carro não é Animal

1 curtida

Veja se ajuda - https://fernandofranzini.wordpress.com/2010/07/07/pizzaria-polimorfica-2/

1 curtida