Considere o programa abaixo, escrito em Java.
class Animal {
public void eat() { System.out.println("Animal come."); }
}
class Felino extends Animal {
public void eat() { System.out.println("Felino come."); }
public void hunts() { System.out.println("Felino caça."); }
}
class Gato extends Felino{
public void eat() { System.out.println("Gato come."); }
}
public class Dispatch {
public static void main(String args[]) {
Animal a = new Felino();
Felino g = new Gato();
a.eat(); // linha 1
a.hunts(); // linha 2
g.eat(); // linha 3
g.hunts(); // linha 4
}
}
Para as linhas 1 a 4, indicadas no código, selecione a alternativa que corresponde àquilo que será impresso em tela durante a execução de cada linha isoladamente (observe que há quatro versões distintas do programa, cada versão contendo apenas uma das linhas entre as linhas 1 a 4).
Felino come
Mensagem indicando erro de compilação
Gato come
Felino caça
Animal come
Felino caça
Felino come
Felino caça
Felino come
Mensagem indicando erro de execução
Gato come
Felino caça
Animal come
Felino caça
Gato come
Felino caça
Felino come
Mensagem indicando erro de compilação
Felino come
Gato caça