Gabarito disponível
Julgue os próximos itens, relativos a linguagens e tecnologias de programação.
Considere o código a seguir, escrito em Java.
class Veiculo {
public void x() {
System.out.println(“movimenta”);
}
}
class Aviao extends Veiculo {
public void x() {
System.out.println(“voa”);
}
}
class Main {
public static void main(String[] args) {
Veiculo mVeiculo = new Veiculo();
Veiculo mAviao = new Aviao();
mVeiculo.x();
mAviao.x();
}
}
No código precedente há um exemplo de polimorfismo; ao ser executado, o código apresentará o seguinte resultado.
movimenta
voa
Considere o código a seguir, escrito em Java.
class Veiculo {
public void x() {
System.out.println(“movimenta”);
}
}
class Aviao extends Veiculo {
public void x() {
System.out.println(“voa”);
}
}
class Main {
public static void main(String[] args) {
Veiculo mVeiculo = new Veiculo();
Veiculo mAviao = new Aviao();
mVeiculo.x();
mAviao.x();
}
}
No código precedente há um exemplo de polimorfismo; ao ser executado, o código apresentará o seguinte resultado.
movimenta
voa
Sobrescrita de método com ligação dinâmica: polimorfismo.
Aviao sobrescreve x() de Veiculo. mVeiculo.x() imprime "movimenta"; mAviao é referência do tipo Veiculo para objeto Aviao, e a ligação dinâmica faz imprimir "voa". Isso caracteriza polimorfismo.
Análise das alternativas
Certo: saída e conceito corretos. Errado: incorreto, pois o código compila e gera essa saída.
Referência: Java: herança e polimorfismo
Resolução comentada do VaiConcursos.