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á
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
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 tipoAnimale instancia um objetoAnimal.animal3, que é do tipoCachorroe instancia um objetoCachorro.
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