Sobes.tech
Назад к вопросам
Junior — Middle
72

Можно ли реализовать множественное наследование в языке Swift?

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

Ответ от нейросети

sobes.tech AI

В языке Swift множественное наследование классов не поддерживается. Класс может наследоваться только от одного суперкласса. Однако, Swift предоставляет возможность реализовать функциональность, похожую на множественное наследование, с помощью протоколов (protocols).

Протоколы позволяют описать набор методов и свойств, которые класс, структура или перечисление должны реализовать. Класс может соответствовать нескольким протоколам, таким образом комбинируя различные поведения.

Пример:

protocol Drivable {
    func drive()
}

protocol Flyable {
    func fly()
}

class Vehicle {
    func start() {
        print("Vehicle started")
    }
}

class FlyingCar: Vehicle, Drivable, Flyable {
    func drive() {
        print("Driving on the road")
    }
    
    func fly() {
        print("Flying in the sky")
    }
}

Таким образом, Swift использует композицию через протоколы вместо множественного наследования.