车辆管理系统(继承与多态)
Java
Hard
classes
任务 «车辆管理系统(继承与多态)»
设计一个用于管理车辆 fleet 的类系统。创建一个抽象类 Vehicle,包含字段:id(int)、brand(String)、model(String)、year(int)以及抽象方法 getInfo()。从它派生出类 Car(额外字段:int doors)和 Motorcycle(额外字段:boolean hasSidecar)。实现类 Fleet,它包含一个 Vehicle 列表以及方法:addVehicle(Vehicle v)、removeVehicle(int id)、getVehicleInfo(int id)(返回车辆信息,格式为:Car 为 "id brand model year doors",Motorcycle 为 "id brand model year sidecar",其中 sidecar 输出为 "yes" 或 "no")、listAllVehicles()(输出所有车辆信息,每辆车占一行)。在 main 中从 stdin 读取命令数量 N,然后读取 N 条命令:"ADD id brand model year type [param]","REMOVE id","INFO id","LIST"。对于 ADD 命令,type 可以是 "Car"(此时 param = doors)或 "Motorcycle"(param = "yes"/"no")。保证 id 唯一。输出 INFO 和 LIST 命令的结果。
输入格式
第一行包含整数 N (1 <= N <= 100)。接下来 N 行命令:ADD id brand model year type param, REMOVE id, INFO id, LIST。
输出格式
对于每条INFO命令,输出该车辆的信息。对于LIST命令,按添加顺序输出所有车辆的信息,每辆车一行。如果对于INFO或REMOVE命令未找到指定id的车辆,则输出"Not found"。
示例
示例 1
输入
6
ADD 1 Toyota Camry 2015 Car 4
ADD 2 Harley Davidson 2020 Motorcycle yes
INFO 1
LIST
REMOVE 1
LIST
输出
1 Toyota Camry 2015 4
1 Toyota Camry 2015 4
2 Harley Davidson 2020 yes
2 Harley Davidson 2020 yes
示例 2
输入
4
ADD 10 BMW X5 2022 Car 5
INFO 10
INFO 20
LIST
输出
10 BMW X5 2022 5
Not found
10 BMW X5 2022 5
示例 3
输入
5
1 2 3 4 5
输出
main.java