Fahrzeugverwaltungssystem mit Vererbung und Polymorphismus
Java
Hard
classes
Aufgabe «Fahrzeugverwaltungssystem mit Vererbung und Polymorphismus»
Entwickeln Sie ein Klassensystem zur Verwaltung eines Fahrzeugparks. Erstellen Sie eine abstrakte Klasse Vehicle mit den Feldern: id (int), brand (String), model (String), year (int) und der abstrakten Methode getInfo(). Leiten Sie davon die Klassen Car (zusätzliches Feld: int doors) und Motorcycle (zusätzliches Feld: boolean hasSidecar) ab. Implementieren Sie die Klasse Fleet, die eine Liste von Vehicle enthält und die Methoden: addVehicle(Vehicle v), removeVehicle(int id), getVehicleInfo(int id) (gibt Informationen über das Fahrzeug im Format: "id brand model year doors" für Car und "id brand model year sidecar" für Motorcycle, wobei sidecar als "yes" oder "no" ausgegeben wird), listAllVehicles() (gibt Informationen über alle Fahrzeuge aus, jedes in einer neuen Zeile). In main lesen Sie von stdin die Anzahl der Befehle N, dann N Befehle: "ADD id brand model year type [param]", "REMOVE id", "INFO id", "LIST". Für ADD kann type "Car" (dann ist param = doors) oder "Motorcycle" (param = "yes"/"no") sein. Es wird garantiert, dass die ids eindeutig sind. Geben Sie die Ergebnisse der Befehle INFO und LIST aus.
Eingabeformat
In der ersten Zeile eine ganze Zahl N (1 <= N <= 100). Dann N Zeilen mit Befehlen: ADD id brand model year type param, REMOVE id, INFO id, LIST.
Ausgabeformat
Für jeden Befehl INFO geben Sie eine Zeile mit den Informationen über das Fahrzeug aus. Für den Befehl LIST geben Sie Informationen über alle Fahrzeuge in der Reihenfolge des Hinzufügens aus, eine Zeile pro Fahrzeug. Wenn das Fahrzeug mit der angegebenen id für INFO oder REMOVE nicht gefunden wird, geben Sie "Not found" aus.
Beispiele
Beispiel 1
EINGABE
6
ADD 1 Toyota Camry 2015 Car 4
ADD 2 Harley Davidson 2020 Motorcycle yes
INFO 1
LIST
REMOVE 1
LIST
AUSGABE
1 Toyota Camry 2015 4
1 Toyota Camry 2015 4
2 Harley Davidson 2020 yes
2 Harley Davidson 2020 yes
Beispiel 2
EINGABE
4
ADD 10 BMW X5 2022 Car 5
INFO 10
INFO 20
LIST
AUSGABE
10 BMW X5 2022 5
Not found
10 BMW X5 2022 5
Beispiel 3
EINGABE
5
1 2 3 4 5
AUSGABE
main.java