Sobes.tech
Junior — Middle

Lze v jazyce Swift implementovat vícenásobné dědičnosti?

sobes.tech AI

Odpověď od AI

V jazyce Swift není podporováno vícenásobné dědění tříd, což znamená, že třída může dědit pouze od jedné nadtřídy.

Nicméně Swift podporuje protokoly, které umožňují implementovat funkčnost podobnou vícenásobnému dědění prostřednictvím implementace několika protokolů.

Příklad:

protocol Flyable {
    func fly()
}

protocol Swimmable {
    func swim()
}

class Animal {
    func eat() {
        print("Jí")
    }
}

class Duck: Animal, Flyable, Swimmable {
    func fly() {
        print("Letí")
    }
    
    func swim() {
        print("Plave")
    }
}

let donald = Duck()
donald.eat()  // Jí
donald.fly()  // Letí
donald.swim() // Plave

Tímto způsobem je možné rozšířit funkčnost pomocí dědění jedné třídy a implementace více protokolů.