[Solución] Sistema de Gestión de Vehículos

Vehículo (Clase abstracta)

abstract class Vehiculo {
    protected String marca;
    protected String modelo;
    protected int año;

    public Vehiculo(String marca, String modelo, int año) {
        this.marca = marca;
        this.modelo = modelo;
        this.año = año;
    }

    public void mostrarDetalles() {
        System.out.println("Marca: " + marca + ", Modelo: " + modelo + ", Año: " + año);
    }

    abstract public String tipoVehiculo();
}

Automóvil (clase hija de Vehículo)

class Automovil extends Vehiculo {
    private int cantidadPuertas;

    public Automovil(String marca, String modelo, int año, int cantidadPuertas) {
        super(marca, modelo, año);
        this.cantidadPuertas = cantidadPuertas;
    }

    @Override
    public String tipoVehiculo() {
        return "Automóvil";
    }

    @Override
    public void mostrarDetalles() {
        super.mostrarDetalles();
        System.out.println("Cantidad de Puertas: " + cantidadPuertas);
    }
}

Motocicleta (clase hija de Vehículo)

class Motocicleta extends Vehiculo {
    private int cilindrada;

    public Motocicleta(String marca, String modelo, int año, int cilindrada) {
        super(marca, modelo, año);
        this.cilindrada = cilindrada;
    }

    @Override
    public String tipoVehiculo() {
        return "Motocicleta";
    }

    @Override
    public void mostrarDetalles() {
        super.mostrarDetalles();
        System.out.println("Cilindrada: " + cilindrada);
    }
}

SistemaGestionVehiculos (main)

public class SistemaGestionVehiculos {
    public static void main(String[] args) {
        Automovil auto = new Automovil("Toyota", "Corolla", 2020, 4);
        Motocicleta moto = new Motocicleta("Yamaha", "YZF", 2019, 250);

        auto.mostrarDetalles();
        System.out.println("Tipo: " + auto.tipoVehiculo());
        System.out.println();
        moto.mostrarDetalles();
        System.out.println("Tipo: " + moto.tipoVehiculo());
    }
}

Last updated