Sistema de gestión de vehículos con herencia y polimorfismo
Java
Hard
classes
Tarea «Sistema de gestión de vehículos con herencia y polimorfismo»
Desarrolle un sistema de clases para gestionar una flota de vehículos. Cree una clase abstracta Vehicle con los campos: id (int), brand (String), model (String), year (int) y el método abstracto getInfo(). De ella herede las clases Car (campo adicional: int doors) y Motorcycle (campo adicional: boolean hasSidecar). Implemente la clase Fleet, que contiene una lista de Vehicle y los métodos: addVehicle(Vehicle v), removeVehicle(int id), getVehicleInfo(int id) (devuelve la información del vehículo en el formato: "id brand model year doors" para Car y "id brand model year sidecar" para Motorcycle, donde sidecar se muestra como "yes" o "no"), listAllVehicles() (muestra la información de todos los vehículos, cada uno en una nueva línea). En main, lea desde stdin la cantidad de comandos N, luego N comandos: "ADD id brand model year type [param]", "REMOVE id", "INFO id", "LIST". Para ADD, type puede ser "Car" (entonces param = doors) o "Motorcycle" (param = "yes"/"no"). Se garantiza que los id son únicos. Muestre los resultados de los comandos INFO y LIST.
Formato de entrada
En la primera línea, un número entero N (1 <= N <= 100). Luego N líneas de comandos: ADD id brand model year type param, REMOVE id, INFO id, LIST.
Formato de salida
Para cada comando INFO, muestre una línea con la información del vehículo. Para el comando LIST, muestre la información de todos los vehículos en el orden de ingreso, una línea por vehículo. Si no se encuentra un vehículo con el id dado para INFO o REMOVE, muestre "Not found".
Ejemplos
Ejemplo 1
ENTRADA
6
ADD 1 Toyota Camry 2015 Car 4
ADD 2 Harley Davidson 2020 Motorcycle yes
INFO 1
LIST
REMOVE 1
LIST
SALIDA
1 Toyota Camry 2015 4
1 Toyota Camry 2015 4
2 Harley Davidson 2020 yes
2 Harley Davidson 2020 yes
Ejemplo 2
ENTRADA
4
ADD 10 BMW X5 2022 Car 5
INFO 10
INFO 20
LIST
SALIDA
10 BMW X5 2022 5
Not found
10 BMW X5 2022 5
Ejemplo 3
ENTRADA
5
1 2 3 4 5
SALIDA
main.java