Sobes.tech
Junior — Middle

Kas Swiftis on võimalik rakendada mitmekordset pärandamist?

sobes.tech AI

Vastus AI-lt

Keeltes Swift programmeerimiskeeles ei toetata mitmekordset pärandamist, see tähendab, et klass võib pärida ainult ühest superklassist.

Kuid Swift toetab protokolle (protocols), mis võimaldavad rakendada funktsionaalsust, mis sarnaneb mitmekordsele pärandamisele, rakendades mitmeid protokolle.

Näide:

protocol Flyable {
    func fly()
}

protocol Swimmable {
    func swim()
}

class Animal {
    func eat() {
        print("Sööb")
    }
}

class Duck: Animal, Flyable, Swimmable {
    func fly() {
        print("Lennata")
    }
    
    func swim() {
        print("Ujuma")
    }
}

let donald = Duck()
donald.eat()  // Sööb
donald.fly()  // Lennata
donald.swim() // Ujuma

Sellisel viisil laiendatakse funktsionaalsust ühe klassi pärandi ja mitme protokolli rakendamise kaudu.