Назад к задачам
Вкусвилл АвтомаконПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
50
Какой вывод получим в примере №32
Компании, где спрашивали:
Условие задачи
Рассмотрим пример, в котором протокол EngineStarter объявляет метод startEngine(). Класс Vehicle реализует этот протокол, а класс Car наследуется от Vehicle и переопределяет метод. В расширении протокола также предоставлена реализация по умолчанию. Затем создаём экземпляр Car и сохраняем его в переменной типа EngineStarter. Какой текст будет напечатан при вызове startEngine()?
protocol EngineStarter {
func startEngine()
}
class Vehicle: EngineStarter {
func startEngine() {
print("Vehicle engine started")
}
}
class Car: Vehicle {
override func startEngine() {
print("Car engine started")
}
}
extension EngineStarter {
func startEngine() {
print("Default engine started")
}
}
let car = Car()
let vehicle: EngineStarter = car
vehicle.startEngine()