1 - Crie uma classe Carro com métodos para representar um modelo específico ao longo de três anos. Implemente métodos para definir o nome do modelo, os preços médios para cada ano, e calcular e exibir o menor e o maior preço. Adicione uma subclasse ModeloCarro para criar instâncias específicas, utilizando-a na classe principal para definir preços e mostrar informações.
package desafios.carro;
public abstract class Carro {
    private String modelo;
    private double precoAno1;
    private double precoAno2;
    private double precoAno3;
    public void setDefinirModelo(String modelo) {
        this.modelo = modelo;
    }
    public void setDefinirPrecos(double precoAno1, double precoAno2, double precoAno3) {
        this.precoAno1 = precoAno1;
        this.precoAno2 = precoAno2;
        this.precoAno3 = precoAno3;
    }
    private double calcularMenorPreco() {
        double menorPreco = precoAno1;
        if (precoAno2 < precoAno1) {
            menorPreco = precoAno2;
        }
        if (precoAno3 < precoAno2) {
            menorPreco = precoAno3;
        }
        return menorPreco;
    }
    public void exibirInfo() {
        System.out.println("Modelo: " + modelo);
        System.out.printf("Menor preço: %.2f\n", calcularMenorPreco());
    }
}
package desafios.carro;
public class ModeloCarro extends Carro {
    private String cor;
    private String tipoMotor;
    public void setCor(String cor) {
        this.cor = cor;
    }
    public void setTipoMotor(String tipoMotor) {
        this.tipoMotor = tipoMotor;
    }
    @Override
    public void exibirInfo() {
        super.exibirInfo();
        System.out.println("Cor: " + cor);
        System.out.println("Tipo do Motor: " + tipoMotor);
    }
}
package desafios.carro;
public class TesteCarros {
    public static void main(String[] args) {
        ModeloCarro carro = new ModeloCarro();
        carro.setDefinirModelo("Sedan");
        carro.setDefinirPrecos(30000, 32000, 35000);
        carro.setCor("Preto");
        carro.setTipoMotor("3.5 V6");
        carro.exibirInfo();
    }
}
2 - 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 desafios.animal;
public class Animal {
    public void emitirSom() {
        System.out.println("Emitindo som");
    }
}
package desafios.animal;
public class Cachorro extends Animal {
    @Override
    public void emitirSom() {
        System.out.println("Au au au");
    }
    public void abanarRabo() {
        System.out.println("Abanando rabo");
    }
}
package desafios.animal;
public class Gato extends Animal {
    @Override
    public void emitirSom() {
        System.out.println("Miau Miau Miau");
    }
    public void arranharMoveis() {
        System.out.println("Arranhando móveis");
    }
}
package desafios.animal;
public class TesteAnimais {
    public static void main(String[] args) {
        Gato laranjinha = new Gato();
        laranjinha.emitirSom();
        laranjinha.arranharMoveis();
        Cachorro caramelo = new Cachorro();
        caramelo.emitirSom();
        caramelo.abanarRabo();
    }
}
 
            