public class Animal {
public void som() {
System.out.printIn(Algum som de animal);
}
}
public class Cachorro extends Animal {
public void som() {
System.out.printIn(Latido);
}
}
Se o seguinte código for executado: java
Animal animal = new Animal();
Cachorro animal3 = new Cachorro():
animal.som();
O que será impresso no console?
a) algum som de animal
b) Latido
c) Erro de compilaçâo
d) Nada, o código nāo executará

Passo 1

Então, a gente tem um exercício de programação em Java que envolve classes e herança. A ideia é entender o que vai ser impresso no console quando rodamos um código específico. Para resolver isso, vamos precisar saber sobre herança e sobrescrita de métodos em Java.

Passo 2

Primeiro, vamos olhar para as classes que foram criadas. Temos uma classe chamada Animal que tem um método chamado som(). Esse método, quando chamado, imprime “Algum som de animal”.
public class Animal {
    public void som() {
        System.out.println("Algum som de animal");
    }
}

Passo 3

Depois, temos outra classe chamada Cachorro que herda de Animal. Isso significa que Cachorro é uma subclasse de Animal e herda seus métodos. Porém, na classe Cachorro, o método som() é sobrescrito para imprimir “Latido”.
public class Cachorro extends Animal {
    public void som() {
        System.out.println("Latido");
    }
}

Passo 4

Agora, vamos ver o que acontece no código principal:
Animal animal = new Animal();
Cachorro animal3 = new Cachorro();
animal.som();
Aqui, criamos duas variáveis:
  • animal, que é do tipo Animal e instancia um objeto Animal.
  • animal3, que é do tipo Cachorro e instancia um objeto Cachorro.

Passo 5

Quando chamamos animal.som();, estamos chamando o método som() na instância de Animal. Como animal é do tipo Animal, ele vai usar o método definido na classe Animal, que imprime “Algum som de animal”.
Se tivéssemos chamado animal3.som();, ele usaria o método sobrescrito na classe Cachorro, imprimindo “Latido”.

Resposta

A opção correta é:
a) algum som de animal

Exercícios relacionados