Sobes.tech
Junior — Senior
89

Какой результат печати у Swift‑кода №26

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

СБЕРСБЕР
Условие задачи

В этом примере демонстрируется, как работает протокольный метод с реализацией по умолчанию и его переопределение в конкретном классе. Обратите внимание, что переменная объявлена как тип протокола, а затем вызываются методы как у протокола, так и у класса‑реализации.

protocol Animal {
    func say()
}

extension Animal {
    func say() {
        print("Animal")
    }
}

class Cat: Animal {
    func say() {
        print("Cat")
    }
}

let cat: Animal = Cat()
cat.say()
Cat().say()