Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Interface com Polimorfismo

Notei que o método get deve ser definido na interface para que possa fazer o polimorfismo, gostaria de saber se a idéia que fiz esta correta.

package animal;

public interface Animal { public abstract String fala(String fala); public abstract String getFala(); // Definir o método getFala no contrato permite chamar na classe Acao o getFala e aplicar o polimorfismo.Essa técnica substitui o polimorfismo gerado pela herança ou resolve a falta das multiplas heranças.

}


package animal;

public class Acao { public void falar(Animal a)** // <- Aplicando o polimorfismo { System.out.println(a.getFala());

} }


package animal;

public class Cachorro implements Animal { private String fala;

@Override public String fala(String fala) {

return this.fala = fala;

}

@Override public String getFala() { // TODO Auto-generated method stub return this.fala; } }


package animal;

public class Falar {

public static void main(String[] args) {
    // TODO Auto-generated method stub
   Cachorro cao =new Cachorro();
  cao.fala("AU AU");
   Gato cat = new Gato();
  cat.fala("Miau");
   Acao acao = new Acao();
   acao.falar(cao);
   acao.falar(cat); 

}

}

2 respostas
solução!

Oie Guilherme, tudo bem contigo?

Sim, está correto a maneira como você aplicou o uso da interface para fazer o polimorfismo e isso mostra que você conseguiu compreender muito bem esse conteúdo.

Uma recomendação que sempre faço para os alunos questão aprendendo sobre polimorfismo é a leitura desses seguintes artigos:

De resto, achei muito legal seu código e fiquei muito feliz que tenha decido compartilahr ele aqui com a gente :)

Continue assim e bons estudos!

Que bom que gostou ! muito obrigado pelo retorno.