Система управления транспортными средствами с наследованием и полиморфизмом
Java
Сложный
classes
Задача «Система управления транспортными средствами с наследованием и полиморфизмом»
Разработайте систему классов для управления парком транспортных средств. Создайте абстрактный класс 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) (возвращает информацию о ТС в формате: "id brand model year doors" для Car и "id brand model year sidecar" для Motorcycle, где 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 выведите информацию обо всех ТС в порядке добавления, по одной строке на ТС. Если ТС с заданным id не найдено для INFO или REMOVE, выведите "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