Практические задания - Урок 16: Интерфейсы
Инструкция: Решите все задания по порядку. Создайте отдельный файл .dart для каждой задачи или решите все в одном файле, разделяя задачи комментариями.
Задача: Интерфейсы
Представь виды транспорта, такие как Автомобиль (Car), Велосипед (Bicycle) и Поезд (Train).
Все транспортные средства имеют метод move(), который отвечает за движение. Но у разных видов транспорта есть свои особенности:
- Автомобиль может включать двигатель перед движением.
- Велосипед просто начинает двигаться, без необходимости включать что-либо.
- Поезд перед движением должен открыть ворота на переезде.
Чтобы обеспечить гибкость и использовать полиморфизм, нужно использовать интерфейс Transport.
Дополни интерфейс методом stop(), который реализуют все виды транспорта. Пусть каждый вид транспорта останавливается по-своему (например, у поезда может быть торможение поезда, у велосипеда — плавная остановка и т. д.).
Шаги решения:
- Создай интерфейс
Transportс методомvoid move();. - Реализуй интерфейс
Transportв классахCar,BicycleиTrain. - В методах
moveдобавь реализацию, которая отображает особенности каждого типа транспорта. - Создай список
List<Transport> fleet, в котором будут храниться все виды транспорта. - Используй цикл, чтобы вызвать
move()у каждого объекта без проверки типов!