Crie uma classe Animal com um método emitirSom(). Em seguida, crie duas subclasses: Cachorro e Gato, que herdam da classe Animal. Adicione o método emitirSom() nas subclasses, utilizando a anotação @Override para indicar que estão sobrescrevendo o método. Além disso, adicione métodos específicos para cada subclasse, como abanarRabo() para o Cachorro e arranharMoveis() para o Gato.
package br.com.exercicio.animal;
public class Animal {
private String nome;
private String tipo;
private String raca;
// métodos
public void fichaAnimal() {
String ficha = """
-----------------------
Nome: %s
Tipo: %s
Raça: %s
""".formatted(nome, tipo, raca);
System.out.println(ficha);
}
public void emitirSom() {
System.out.println("Som do animal");
}
// getters e setters
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
public String getRaca() {
return raca;
}
public void setRaca(String raca) {
this.raca = raca;
}
}
package br.com.exercicio.animal;
public class Cachorro extends Animal{
@Override
public void emitirSom() {
System.out.println("Au Au");
}
public void abanarRabo() {
System.out.println("Abanando o rabo");
}
}
package br.com.exercicio.animal;
public class Gato extends Animal{
@Override
public void emitirSom() {
System.out.println("Miau");
}
public void arranharMoveis() {
System.out.println("Arranhando móveis");
}
}
import br.com.exercicio.animal.Cachorro;
import br.com.exercicio.animal.Gato;
public class Principal {
public static void main(String[] args) {
Cachorro cachorro = new Cachorro();
cachorro.setNome("Thor");
cachorro.setTipo("Cachorro");
cachorro.setRaca("Labrador");
cachorro.fichaAnimal();
cachorro.emitirSom();
cachorro.abanarRabo();
Gato gato = new Gato();
gato.setNome("Mia");
gato.setTipo("Gato");
gato.setRaca("SRD");
gato.fichaAnimal();
gato.emitirSom();
gato.arranharMoveis();
}
}