Questão FC374757
Java é uma linguagem de programação orientada a objetos. Analise o seguinte código Java que utiliza os conceitos de herança e polimorfismo e assinale a alternativa referente à saíd
Linguagens de Programação
Instituto Consulplan · 2025
Java é uma linguagem de programação orientada a objetos. Analise o seguinte código Java que utiliza os conceitos de herança e polimorfismo e assinale a alternativa referente à saída desse código.
class Animal {
String som() {
return "Som genérico!";
}
}
class Gato extends Animal {
@Override
String som() {
return "Miau, Miau!";
}
}
public class Main {
public static void main(String[] args) {
Animal a = new Gato();
System.out.println(a.som());
}
}
- Miau, Miau!
- Som genérico!
- Erro de compilação.
- Nenhuma saída.
Mostrar resposta e comentário
Gabarito
A
Comentário do professor
O código imprime Miau, Miau! porque em Java a chamada de método é resolvida em tempo de execução pelo tipo real do objeto, não apenas pelo tipo da referência.
A variável Animal referencia um objeto criado como new Gato(). Como Gato sobrescreve o método som() (marcado com @Override), a implementação de Gato é a que será executada.
Na compilação, o método som() precisa existir no tipo da referência (Animal), garantindo que a chamada a.som() seja válida. Na execução, o JVM usa o objeto concreto (Gato) e invoca sua versão do método.
Assim, System.out.println(a.som()) imprime o valor retornado por Gato.som(), isto é, Miau, Miau!.
Conteúdo do catálogo FC Concursos · Atualizado em