Système de gestion des véhicules avec héritage et polymorphisme

Java Hard classes

Tâche «Système de gestion des véhicules avec héritage et polymorphisme»

Développez un système de classes pour gérer un parc de véhicules. Créez une classe abstraite Vehicle avec les champs : id (int), brand (String), model (String), year (int) et une méthode abstraite getInfo(). Héritez-en les classes Car (champ supplémentaire : int doors) et Motorcycle (champ supplémentaire : boolean hasSidecar). Implémentez la classe Fleet qui contient une liste de Vehicle et les méthodes : addVehicle(Vehicle v), removeVehicle(int id), getVehicleInfo(int id) (retourne les informations du véhicule au format : "id brand model year doors" pour Car et "id brand model year sidecar" pour Motorcycle, où sidecar est affiché comme "yes" ou "no"), listAllVehicles() (affiche les informations de tous les véhicules, chacun sur une nouvelle ligne). Dans main, lisez depuis stdin le nombre de commandes N, puis N commandes : "ADD id brand model year type [param]", "REMOVE id", "INFO id", "LIST". Pour ADD, le type peut être "Car" (alors param = doors) ou "Motorcycle" (param = "yes"/"no"). Il est garanti que les id sont uniques. Affichez les résultats des commandes INFO et LIST.

Format d\ entrée

Sur la première ligne, un entier N (1 <= N <= 100). Ensuite, N lignes de commandes : ADD id brand model year type param, REMOVE id, INFO id, LIST.

Format de sortie

Pour chaque commande INFO, affichez une ligne avec les informations du véhicule. Pour la commande LIST, affichez les informations de tous les véhicules dans l’ordre d’ajout, une ligne par véhicule. Si un véhicule avec l’id donné n’est pas trouvé pour INFO ou REMOVE, affichez "Not found".

Exemples

Exemple 1

ENTRÉE
6 ADD 1 Toyota Camry 2015 Car 4 ADD 2 Harley Davidson 2020 Motorcycle yes INFO 1 LIST REMOVE 1 LIST
SORTIE
1 Toyota Camry 2015 4 1 Toyota Camry 2015 4 2 Harley Davidson 2020 yes 2 Harley Davidson 2020 yes

Exemple 2

ENTRÉE
4 ADD 10 BMW X5 2022 Car 5 INFO 10 INFO 20 LIST
SORTIE
10 BMW X5 2022 5 Not found 10 BMW X5 2022 5

Exemple 3

ENTRÉE
5 1 2 3 4 5
SORTIE
main.java