1
resposta

[Projeto] utilizando a anotação @Override

1. Carro e ModeloCarro
java
Copiar
Editar
public class Carro {
    protected String modelo;
    protected double[] precos = new double[3];

    public void setModelo(String modelo) {
        this.modelo = modelo;
    }

    public void setPrecos(double precoAno1, double precoAno2, double precoAno3) {
        this.precos[0] = precoAno1;
        this.precos[1] = precoAno2;
        this.precos[2] = precoAno3;
    }

    public double calcularMenorPreco() {
        double menor = precos[0];
        for (double preco : precos) {
            if (preco < menor) menor = preco;
        }
        return menor;
    }

    public double calcularMaiorPreco() {
        double maior = precos[0];
        for (double preco : precos) {
            if (preco > maior) maior = preco;
        }
        return maior;
    }

    public void exibirInformacoes() {
        System.out.println("Modelo: " + modelo);
        System.out.println("Menor preço: R$" + calcularMenorPreco());
        System.out.println("Maior preço: R$" + calcularMaiorPreco());
    }
}

public class ModeloCarro extends Carro {
    public ModeloCarro(String modelo, double p1, double p2, double p3) {
        this.setModelo(modelo);
        this.setPrecos(p1, p2, p3);
    }
}
2. Animal, Cachorro e Gato
java
Copiar
Editar
public class Animal {
    public void emitirSom() {
        System.out.println("O animal emite um som.");
    }
}

public class Cachorro extends Animal {
    @Override
    public void emitirSom() {
        System.out.println("O cachorro late: Au au!");
    }

    public void abanarRabo() {
        System.out.println("O cachorro está abanando o rabo.");
    }
}

public class Gato extends Animal {
    @Override
    public void emitirSom() {
        System.out.println("O gato mia: Miau!");
    }

    public void arranharMoveis() {
        System.out.println("O gato está arranhando os móveis.");
    }
}
3. ContaBancaria e ContaCorrente
java
Copiar
Editar
public class ContaBancaria {
    protected double saldo;

    public void depositar(double valor) {
        saldo += valor;
    }

    public void sacar(double valor) {
        if (valor <= saldo) {
            saldo -= valor;
        } else {
            System.out.println("Saldo insuficiente.");
        }
    }

    public void consultarSaldo() {
        System.out.println("Saldo atual: R$" + saldo);
    }
}

public class ContaCorrente extends ContaBancaria {
    public void cobrarTarifaMensal() {
        double tarifa = 12.50;
        if (saldo >= tarifa) {
            saldo -= tarifa;
            System.out.println("Tarifa mensal de R$" + tarifa + " cobrada.");
        } else {
            System.out.println("Saldo insuficiente para cobrar a tarifa.");
        }
    }
}
4. NumerosPrimos, VerificadorPrimo e GeradorPrimo
java
Copiar
Editar
public class NumerosPrimos {
    public boolean verificarPrimalidade(int numero) {
        if (numero <= 1) return false;
        for (int i = 2; i <= Math.sqrt(numero); i++) {
            if (numero % i == 0) return false;
        }
        return true;
    }

    public void listarPrimos(int limite) {
        System.out.print("Primos até " + limite + ": ");
        for (int i = 2; i <= limite; i++) {
            if (verificarPrimalidade(i)) System.out.print(i + " ");
        }
        System.out.println();
    }
}

public class VerificadorPrimo extends NumerosPrimos {
    public void verificarSeEhPrimo(int numero) {
        if (verificarPrimalidade(numero)) {
            System.out.println(numero + " é primo.");
        } else {
            System.out.println(numero + " não é primo.");
        }
    }
}

public class GeradorPrimo extends NumerosPrimos {
    private int ultimo = 1;

    public int gerarProximoPrimo() {
        int proximo = ultimo + 1;
        while (!verificarPrimalidade(proximo)) {
            proximo++;
        }
        ultimo = proximo;
        return proximo;
    }
}
1 resposta

Oii, Izabela!

Agradeço por compartilhar seu código com a comunidade Alura.

Gostei muito de como você aplicou a herança e o uso da anotação @Override nas classes Cachorro e Gato. Ficou claro o entendimento da sobrescrita de métodos e como personalizar o comportamento em cada subclasse.

Continue firme nos estudos.

Alura

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