Sobes.tech
Junior — Middle

Lehetséges több öröklés megvalósítása a Swift nyelvben?

sobes.tech MI

Válasz az MI-től

Swift nyelvben nem támogatott a több öröklés osztályok között, azaz egy osztály csak egy szuperosztálytól örökölhet.

Azonban Swift támogat protokollokat, amelyek lehetővé teszik több protokoll megvalósításával a több örökléshez hasonló funkcionalitás megvalósítását.

Példa:

protocol Flyable {
    func fly()
}

protocol Swimmable {
    func swim()
}

class Animal {
    func eat() {
        print("Eszik")
    }
}

class Duck: Animal, Flyable, Swimmable {
    func fly() {
        print("Repül")
    }
    
    func swim() {
        print("Úszik")
    }
}

let donald = Duck()
donald.eat()  // Eszik
donald.fly()  // Repül
donald.swim() // Úszik

Így a funkcionalitás bővíthető egy osztály öröklésével és több protokoll megvalósításával.