Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] Treino de herança, sobrescrita, e palavras-chave 'this' e 'super'

Olá, pessoal.. Criei este projeto para um futuro sistema de clínica veterinária que eu desejo desenvolver um dia. Queria compartilhar. :)

package animais;

public class Animal {
    private int RGAnimal;
    private String nome;
    private String raca;

    public Animal(int RGAnimal, String nome, String raca) {
        this.RGAnimal = RGAnimal;
        this.nome = nome;
        this.raca = raca;
    }

    public void darRemedio() {
        System.out.println("Deu remédio A1, A2 e A3");
    }

    public void mostrar() {
        System.out.println("Nome: " + this.nome);
        System.out.println("RGA: " + this.RGAnimal);
        System.out.println("Raça: " + this.raca);
    }
}
package animais.mamiferos;
import animais.Animal;

public class Mamifero extends Animal {

    private String corPelo;

    public Mamifero(int RGAnimal, String nome, String raca, String corPelo) {
        super(RGAnimal, nome, raca);
        this.corPelo = corPelo;
    }

    @Override
    public void mostrar() {
        super.mostrar();
        System.out.println("Cor do pêlo: " + this.corPelo);
    }

}
package animais.mamiferos;

public class Cachorro extends Mamifero {

    public Cachorro(int RGAnimal, String nome, String raca, String corPelo) {
        super(RGAnimal, nome, raca, corPelo);
    }

    @Override
    public void darRemedio() {
        System.out.println("Deu remédios C1, C1, C3.");
    }

    @Override
    public void mostrar() {
        super.mostrar();
    }

}
package animais.mamiferos;

public class Gato extends Mamifero {

    public Gato(int RGAnimal, String nome, String raca, String corPelo) {
        super(RGAnimal, nome, raca, corPelo);
    }

    @Override
    public void darRemedio() {
        System.out.println("Deu remédios G1, G2 e G3");
    }
}
package main;

import animais.mamiferos.Cachorro;
import animais.mamiferos.Gato;

public class TesteApp {
    public static void main(String[] args) {
        Cachorro billy = new Cachorro(123654, "Billy", "Pastor alemão", "Marrom");
        Gato bochecha = new Gato(456987, "Bochecha", "Pardo", "Amarelo");
        billy.mostrar();
        System.out.println("----------");
        bochecha.mostrar();
    }
}

Imagem de clínica veterinária mostrando resultados do sistema

2 respostas
solução!

O código ficou super legal, é um ótimo exercício para treinar os conceitos de Programação Orientada a Objetos!

Uma coisa que pode ser legal, para você já ir exercitando, é pensar em uma rotina de programação para testar o seu código de forma menos manual, pra quando você tiver programas maiores, o que acha?

Por exemplo: pode ser legal ter um método "testarAnimais()", em TesteApp, para que sempre que ocorram mudanças seja possível ter uma versão rápida de verificação. O que acha? Fica o desafio ;)

Obrigado pela sugestão dos testes! Irei procurar a respeito disso também.