// veiculo, superclasse

public abstract class Veiculo {
    private String modelo;
    private String marca;
    private int ano;
    private String cor;

    // Construtor da classe Veiculo
    public Veiculo(String modelo, String marca, int ano, String cor) {
        this.modelo = modelo;
        this.marca = marca;
        this.ano = ano;
        this.cor = cor;
    }

    // Métodos getters
    public String getModelo() {
        return modelo;
    }

    public String getMarca() {
        return marca;
    }

    public int getAno() {
        return ano;
    }

    public String getCor() {
        return cor;
    }

    // Método para exibir informações do veículo
    public void exibirInformacoes() {
        System.out.println("Modelo: " + modelo);
        System.out.println("Marca: " + marca);
        System.out.println("Ano: " + ano);
        System.out.println("Cor: " + cor);
    }
}





// carro, que herda de veiculo

public class Carro extends Veiculo {
    private int numeroPortas;
    private boolean arCondicionado;

    // Construtor da classe Carro
    public Carro(String modelo, String marca, int ano, String cor, int numeroPortas, boolean arCondicionado) {
        super(modelo, marca, ano, cor); // Chama o construtor da classe Veiculo
        this.numeroPortas = numeroPortas;
        this.arCondicionado = arCondicionado;
    }

    // Métodos getters
    public int getNumeroPortas() {
        return numeroPortas;
    }

    public boolean temArCondicionado() {
        return arCondicionado;
    }

    // Método para exibir informações específicas do carro
    @Override
    public void exibirInformacoes() {
        super.exibirInformacoes(); // Exibe as informações gerais do veículo
        System.out.println("Número de Portas: " + numeroPortas);
        System.out.println("Ar Condicionado: " + (arCondicionado ? "Sim" : "Não"));
    }
}


//caminhao, que herda de veiculo

public class Caminhao extends Veiculo {
    private double capacidadeCarga;
    private boolean baú;

    // Construtor da classe Caminhao
    public Caminhao(String modelo, String marca, int ano, String cor, double capacidadeCarga, boolean baú) {
        super(modelo, marca, ano, cor); // Chama o construtor da classe Veiculo
        this.capacidadeCarga = capacidadeCarga;
        this.baú = baú;
    }

    // Métodos getters
    public double getCapacidadeCarga() {
        return capacidadeCarga;
    }

    public boolean temBau() {
        return baú;
    }

    // Método para exibir informações específicas do caminhão
    @Override
    public void exibirInformacoes() {
        super.exibirInformacoes(); // Exibe as informações gerais do veículo
        System.out.println("Capacidade de Carga: " + capacidadeCarga + " toneladas");
        System.out.println("Possui Baú: " + (baú ? "Sim" : "Não"));
    }
}

// main, onde irá executar o programa

public class Main {
    public static void main(String[] args) {
        // Criando um objeto Carro
        Carro carro = new Carro("Fusca", "Volkswagen", 1978, "Azul", 2, true);
        carro.exibirInformacoes(); // Exibe as informações do carro
        System.out.println();

        // Criando um objeto Caminhão
        Caminhao caminhao = new Caminhao("Scania", "Scania", 2020, "Preto", 18.0, true);
        caminhao.exibirInformacoes(); // Exibe as informações do caminhão
        System.out.println();
    }
}

Embed on website

To embed this program on your website, copy the following code and paste it into your website's HTML: