Наследование и полиморфизм: система управления транспортными средствами
Swift
Сложный
classes
Задача «Наследование и полиморфизм: система управления транспортными средствами»
Разработайте иерархию классов для управления парком транспортных средств. Базовый класс Vehicle содержит свойства brand (String) и year (Int), а также метод description(), возвращающий строку вида "Vehicle: brand year". Класс Car наследует Vehicle и добавляет свойство fuelType (String, может быть "petrol", "diesel", "electric") и переопределяет description() так, чтобы возвращать "Car: brand year, fuel: fuelType". Класс Bicycle наследует Vehicle и добавляет свойство type (String, может быть "mountain", "road", "city") и переопределяет description() так, чтобы возвращать "Bicycle: brand year, type: type". Класс Fleet управляет массивом Vehicle и имеет метод addVehicle(_: Vehicle) для добавления транспортного средства, метод listDescriptions() для вывода на экран (через print) описаний всех транспортных средств в порядке добавления (каждое на новой строке) и метод countByYear(year: Int) -> Int, возвращающий количество транспортных средств указанного года. Входные данные: сначала целое число N (1 ≤ N ≤ 100) — количество транспортных средств. Затем для каждого транспортного средства вводится строка типа ("Car" или "Bicycle") и соответствующие свойства: brand (строка без пробелов), year (целое число от 1900 до 2023), а для Car — fuelType (строка), для Bicycle — type (строка). После ввода всех транспортных средств выведите через пробел год (целое число) для подсчёта. Гарантируется, что все данные корректны. Выведите сначала результаты работы listDescriptions(), затем на новой строке число транспортных средств указанного года.
Формат ввода
Целое число N. Затем N блоков: строка типа, строка brand, целое year, для Car строка fuelType, для Bicycle строка type. Затем целое число yearForCount.
Формат вывода
Сначала N строк описаний (каждое описание на отдельной строке), затем на новой строке целое число — количество транспортных средств с годом, равным yearForCount.
Примеры
Пример 1
ВВОД
10
ВЫВОД
30
Пример 2
ВВОД
6
4 4 1 1 2 3
ВЫВОД
1 1 4 4 2 3
main.swift