class Comida
{
private String nome;
public Comida(String s)
{ nome=s; }
public String getNome()
{return nome;}
}
class Sanduiche extends Comida
{ public Sanduiche(String s)
{ super(s); }
}
class Panela
{
public void fazer (Comida c)
{ System.out.println("Estou fazendo "+ c.getNome()); }
}
class Frigideira extends Panela
{
public void fazer (Sanduiche s)
{ System.out.println("Estou tostando "+ s.getNome()); }
public void fazer (Comida c)
{ System.out.println("Estou fritando "+ c.getNome()); }
}
E tenho uma outra classe para testar as anteriores
public class Teste
{
public static void main(String a[])
{
Panela p, q;
p = new Panela();
q = new Frigideira();
Comida c = new Comida("galinha"
Comida s = new Sanduiche("bauru"
p.fazer(c);
q.fazer(c);
q.fazer(s);
}
}
Enfim, a saída da classe de teste é:
Estou fazendo galinha
Estou fritando galinha
Estou fritando bauru
Mas o bauru não deveria ser tostado? Notem que q é uma frigideira, e eu estou invocando o método fazer passando um sanduíche como parâmetro. Na classe frigideira, o sanduíche deveria ser tostado.
Alguém pode me dar uma força nessa?
Abraço.