FC ConcursosFC Concursos

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());

}

}

  1. Miau, Miau!
  2. Som genérico!
  3. Erro de compilação.
  4. 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

Continue aprendendo