Sobes.tech
Junior — Middle

Da li je moguće u jeziku Swift implementirati višestruko nasleđivanje od više klasa istovremeno?

sobes.tech АИ

Одговор од АИ

У Swift није могуће наслеђивање од више класа у исто време, односно мултинаследство класа није подржано. Класа може имати само једног родитеља. Уместо тога, Swift користи протоколе за постизање сличне функционалности: класа може имплементирати више протокола, што омогућава додавање различитих понашања и својстава без мултинаследства.

Пример имплементације протокола:

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 подстиче композицију кроз протоколе уместо мултинаследства класа.