1
resposta

Desafio Java 03 Herança e Polimorfismo

  1. Classe Carro e ModeloCarro
package OrientacaoObjetos.DesafiosHeranca;

public class Carro {
   private String modelo;
   private Double preco;

   //getters e setters...
    }
}
package OrientacaoObjetos.DesafiosHeranca;

public class ModeloCarro extends Carro{
    ModeloCarro(String modelo){
        super(modelo);
    }
    public void calcularValores(Double valorAno1, Double valorAno2, Double valorAno3) {
        Double valorMedio = (valorAno1 + valorAno2 + valorAno3) / 3;

        System.out.println("Valores do "+ getModelo() +" nos 3 anos: ");
        System.out.println("1º ano: R$" + valorAno1);
        System.out.println("2º ano: R$" + valorAno2);
        System.out.println("3º ano: R$" + valorAno3);

        if (valorAno1.equals(valorAno2) && valorAno2.equals(valorAno3)) {
            System.out.println("Maior valor: R$" + valorAno1 + " - 1º ano");
            System.out.println("Menor valor: R$" + valorAno1 + " - 1º ano");
        }
        else if(valorAno1.compareTo(valorAno2)>0 && valorAno2.compareTo(valorAno3)>0) {
            System.out.println("Maior valor: R$" + valorAno1 + " - 1º ano");
            if (valorAno2.compareTo(valorAno3) > 0) {
                System.out.println("Menor valor: R$" + valorAno3 + " - 3º ano");
            } else {
                System.out.println("Menor valor: R$" + valorAno2 + " - 2º ano");
            }
        }
        else if (valorAno2.compareTo(valorAno3) > 0 && valorAno2.compareTo(valorAno1) > 0) {
            System.out.println("Maior valor: R$" + valorAno2 + " - 2º ano");
            if (valorAno1.compareTo(valorAno3) > 0) {
                System.out.println("Menor valor: R$" + valorAno3 + " - 3º ano");
            }
            else{
                System.out.println("Menor valor: R$" + valorAno1 + " - 1º ano");;
            }
        }
        else if (valorAno3.compareTo(valorAno2) > 0 && valorAno3.compareTo(valorAno1) > 0) {
            System.out.println("\nMaior valor: R$" + valorAno3 + " - 3º ano");
            if (valorAno1.compareTo(valorAno2) > 0) {
                System.out.println("Menor valor: R$" + valorAno2 + " - 2º ano");
            }
            else{
                System.out.println("Menor valor: R$" + valorAno1 + " - 1º ano");
            }
        }
        System.out.println("Valor médio dos preços nos 3 anos: R$" + valorMedio);
    }
}
package OrientacaoObjetos.DesafiosHeranca;
import OrientacaoObjetos.DesafiosHeranca.ModeloCarro;

//main
        ModeloCarro modelo1 = new ModeloCarro("Gol");
        modelo1.calcularValores(20000.0, 135000.0, 10000.0);
        ModeloCarro modelo2 = new ModeloCarro("Nivus");
        modelo2.calcularValores(60000.0, 75000.0, 68000.0);
    }
}

2.Classe Animal, Gato e Cachorro

public class Animal {
    public void emitirSom(){
        System.out.println("Som do animal");
    }
}
public class Cachorro extends Animal{
    @Override
    public void emitirSom(){
        System.out.println("AU AU AU");
    }
    public void abanarRabo(){
        System.out.println("Cachorro feliz");
        System.out.println("Abanando o rabo");
    }
}
public class Gato extends Animal{
    @Override
    public void emitirSom(){
        System.out.println("Miau");
    }
    public void arranharMoveis(){
        System.out.println("Arranhando moveis");
    }
}
//main
 Cachorro c1 = new Cachorro();
        Gato g1 = new Gato();
        c1.abanarRabo();
        c1.emitirSom();
        g1.emitirSom();
  1. Classe ContaBancaria eContaCorrente
package OrientacaoObjetos.DesafiosHeranca;

public class ContaBancaria {
    private Double saldo = 0.0;
    //get saldo...
    public void depositar(Double valor){
        saldo += valor;
        System.out.println("Depósito de R$" + valor);
    }
    public void sacar(Double valor){
        if (saldo>=valor){
            saldo -= valor;
            System.out.println("Saque de R$" + valor);
        }
        else{
            System.out.println("Saldo insuficiente");
        }
    }
    public void consultarSaldo(){
        System.out.println("Saldo: R$" + saldo);
    }
}
package OrientacaoObjetos.DesafiosHeranca;

public class ContaCorrente extends ContaBancaria{
    Double tarifa = 20.0;
//get tarifa
    public void cobrarTarifaMensal(){
        if(getSaldo()>=tarifa){
            System.out.println("Tarifa mensal de R$" + tarifa);
            sacar(tarifa);
            System.out.println("Tarifa cobrada com sucesso.");
        }
        else{
            System.out.println("Saldo insuficiente para pagar tarifa mensal.");
        }
    }
}
//main
ContaCorrente c2 = new ContaCorrente();
        c2.depositar(3000.0);
        c2.consultarSaldo();
        c2.cobrarTarifaMensal();
        c2.consultarSaldo();
1 resposta

Oi, Paulo! Como vai?

Você estruturou muito bem os conceitos de herança e polimorfismo nas classes apresentadas. A ideia de aplicar comportamentos diferentes em Animal, Cachorro e Gato ficou clara e direta, além da lógica de cálculo na classe ModeloCarro, que mostra domínio sobre condicionais e métodos.

Boa sorte na sua jornada!