Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Desafio: hora da prática (Exercício Animal)

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();

    }
}

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta
solução!

Oi, Aline! Como vai?

Agradeço por compartilhar.

Gostei muito da sua solução! O código está bem estruturado e demonstra claramente o conceito de herança e sobrescrita de métodos com o uso da anotação @Override. As classes Cachorro e Gato estão organizadas e cumprem bem o propósito da atividade.

Continue praticando esse tipo de modelagem orientada a objetos.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!