Código com herança e polimorfismo: criado em diretórios comuns no IntelliJ sem maven ou gradle...
public class Carro { private String modelo; private double[] precos = new double[3];
public void setModelo(String modelo) {
    this.modelo = modelo;
}
public String getModelo() {
    return modelo;
}
public void setPrecos(double ano1, double ano2, double ano3) {
    precos[0] = ano1;
    precos[1] = ano2;
    precos[2] = ano3;
}
public double getMenorPreco() {
    double menor = precos[0];
    for (double preco : precos) {
        if (preco < menor) {
            menor = preco;
        }
    }
    return menor;
}
public double getMaiorPreco() {
    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$ " + getMenorPreco());
    System.out.println("Maior preço: R$ " + getMaiorPreco());
}
}
Subclasse que herda e sobrepôe método:
public class ModeloCarro extends Carro { @Override public void exibirInformacoes() { System.out.println("=== Detalhes do Modelo ==="); super.exibirInformacoes(); // Chama método da superclasse System.out.println("=========================="); } }
Classe principal com uso de herança e polimorfismo:
public class Principal { public static void main(String[] args) {
    Carro carro1 = new ModeloCarro();
    carro1.setModelo("Toyota Corolla");
    carro1.setPrecos(85000.00, 90000.00, 88000.00);
    // Método sobreposto será chamado
    carro1.exibirInformacoes();
}
}
 
             
             Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!
 Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!