Sobes.tech
Back to questions
Junior — Middle
74

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

Companies where asked
Sense IT Group
Itexus
SelectelSelectel

Answer from AI

sobes.tech AI

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

Пример реализации протоколов:

protocol Drivable {
    func drive()
}

protocol Flyable {
    func fly()
}

class Vehicle: Drivable {
    func drive() {
        print("Едем")
    }
}

class FlyingCar: Vehicle, Flyable {
    func fly() {
        print("Летим")
    }
}

let car = FlyingCar()
car.drive() // Едем
car.fly()   // Летим

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