Sobes.tech
Назад к задачам
Junior — Senior
50

Какой вывод получим в примере №32

Компании, где спрашивали:

Вкусвилл АвтомаконВкусвилл Автомакон
Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Рассмотрим пример, в котором протокол 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()