1
resposta

Exercício Modelo Carro

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();
}

}

1 resposta

Oi, Sheila! Como vai?

Você estruturou bem a herança e o uso de polimorfismo no método **exibirInformacoes()**. A forma como chamou o **super.exibirInformacoes()** dentro da subclasse mostra domínio da reutilização de lógica da superclasse.

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