2.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.
Animal
package br.com.alura.animal;
public class Animal {
private String nome;
private String tipo;
private String raca;
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: ");
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getRaca() {
return raca;
}
public void setRaca(String raca) {
this.raca = raca;
}
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
}
Cachorro
package br.com.alura.animal;
public class Cachorro extends Animal {
@Override
public void emitirSom() {
System.out.println("Au Au");
}
public void abanarRabo() {
System.out.println("Abanando o rabo");
}
}
Gato
package br.com.alura.animal;
public class Gato extends Animal {
@Override
public void emitirSom() {
System.out.println("Miau");
}
public void arranharMoveis(){
System.out.println("Arranhando Móveis");
}
}
Main
import br.com.alura.animal.Cachorro;
import br.com.alura.animal.Gato;
public class Main {
public static void main(String[] args) {
Cachorro cachorro = new Cachorro();
cachorro.setNome("Draco");
cachorro.setTipo("Cachorro");
cachorro.setRaca("Vira Lata");
cachorro.fichaAnimal();
cachorro.emitirSom();
cachorro.abanarRabo();
Gato gato = new Gato();
gato.setNome("Shyori");
gato.setTipo("Gato");
gato.setRaca("Malhada");
gato.fichaAnimal();
gato.emitirSom();
gato.arranharMoveis();
}
}