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.
import java.util.Scanner;
public class Animal {
protected String nome;
protected double peso;
protected String raca;
Scanner sc = new Scanner(System.in);
public void emitirSom() {
System.out.println("Animal emitindo som!");
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public double getPeso() {
return peso;
}
public void setPeso(double peso) {
this.peso = peso;
}
public String getRaca() {
return raca;
}
public void setRaca(String raca) {
this.raca = raca;
}
public void inserirDadosAnimal() {
System.out.println("Insira o nome do Animal: ");
setNome(nome = sc.nextLine());
System.out.println("Insira o peso do Animal: ");
setPeso(peso = sc.nextDouble());
System.out.println("Insira a raça do Animal: ");
setRaca(raca = sc.nextLine());
}
public void exibirInformacoesAnimal() {
System.out.println("Nome: " + this.getNome());
System.out.println("Peso: " + this.getPeso());
System.out.println("Taça: " + this.getRaca());
}
}
public class Cachorro extends Animal {
@Override
public void emitirSom() {
System.out.println(getNome() +" diz: " + "Au au au!");
}
public void comer() {
System.out.println(getNome() + "Comendo raçao!");
}
public void abanarRabo() {
System.out.println(getNome() + " Abanando o rabo!" + " feliz em ver você!");
}
@Override
public void inserirDadosAnimal() {
System.out.println("Insira o nome: ");
setNome(nome = sc.nextLine());
System.out.println("Insira a raça:");
setRaca(raca = sc.nextLine());
System.out.println("Insira o peso: ");
setPeso(peso = sc.nextDouble());
}
@Override
public void exibirInformacoesAnimal() {
System.out.println("É um cachorro!");
System.out.println("Nome: " + this.getNome());
System.out.println("Peso: " + this.getPeso());
System.out.println("Raça: " + this.getRaca());
}
}
public class Gato extends Animal {
@Override
public void emitirSom() {
System.out.println(getNome() + " Miauuuu, miauuuu!");
}
public void arranharMoveis() {
System.out.println(getNome() + " arranhando os móveis!");
}
public void desprezarHumano() {
System.out.println(getNome() + " desprezando seu humano!");
}
@Override
public void inserirDadosAnimal() {
System.out.println("Insira o nome: ");
setNome(nome = sc.nextLine());
System.out.println("Insira a raça:");
setRaca(raca = sc.nextLine());
System.out.println("Insira o peso: ");
setPeso(peso = sc.nextDouble());
}
@Override
public void exibirInformacoesAnimal() {
System.out.println("É um Gato");
System.out.println("Nome: " + this.getNome());
System.out.println("Peso: " + this.getPeso());
System.out.println("Raça: " + this.getRaca());
}
}
public class Principal {
public static void main(String[] args) {
Cachorro cachorro = new Cachorro();
cachorro.inserirDadosAnimal();
cachorro.exibirInformacoesAnimal();
cachorro.emitirSom();
cachorro.abanarRabo();
Gato gato = new Gato();
gato.inserirDadosAnimal();
gato.exibirInformacoesAnimal();
gato.emitirSom();
gato.arranharMoveis();
gato.desprezarHumano();
}
}