Aê galera, beleza!
É o seguinte.
Não é bem uma dúvida, é que eu lí uma apostila da internet, a parte de polimorfismo, e tentei implementar no código o que eu entendi do assunto. Segue o código abaixo.
abstract class Ave
{
private String nome;
public Ave(String nome){
this.setNome(nome);
}
public void voar(){
System.out.println("Ave voando!!!!!!!!!!");
}
public void setNome(String Nome){
this.nome = nome;
}
public String getNome(){
return this.nome;
}
}
class Passaro extends Ave
{
public Passaro(){
this("Passaro qualquer");
}
public Passaro(String nome){
super(nome);
}
public void voar(){
System.out.println(super.getNome() + " voando!!!!!!!!!!");
}
}
class Galinha extends Ave
{
public Galinha(){
this("Galinha qualquer");
}
public Galinha(String nome){
super(nome);
}
public void voar(){
System.out.println("A galinha " + super.getNome() + " nao sabe voar!!!!!!!");
}
}
class MandarVoar
{
public void voar(Ave a){
a.voar();
}
}
class TestePolimorfismo
{
public static void main(String[] args)
{
Ave ave = new Passaro("Churel");
MandarVoar m = new MandarVoar();
m.voar(ave);
try
{
System.in.read();
}
catch(java.io.IOException e)
{
e.printStackTrace();
}
ave = new Galinha("Furusteca");
m.voar(ave);
}
}
O programa tá imprimindo:
null voando!!!!!!!!
A galinha null nao sabe voar!!!!!!!!!
Ou seja, não está imprimindo o nome das aves passadas nos construtores.
Algém sabe onde está o erro? Já fiz de tudo mas não consegui encontrar.
Outra coisa, se alguém souber alguns links bons falando sobre polimorfismo, posta aí também. Se não for pedir de mais, é claro.
Valeu!!!!!!!!


