Sobes.tech
Junior — Middle

Swift dilində çoxlu irsiyyəti həyata keçirmək mümkündürmü?

sobes.tech Süni İntellekt

AI-dan cavab

Swift dilində çoxlu irsiyyət (multiple inheritance) dəstəklənmir, yəni, sinif yalnız bir super sinifdən irsiyyət ala bilər.

Ancaq, Swift protokolları dəstəkləyir; bu protokollar vasitəsilə çoxlu irsiyyətə bənzər funksionallığı həyata keçirmək mümkündür.

Misal:

protocol Flyable {
    func fly()
}

protocol Swimmable {
    func swim()
}

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

class Duck: Animal, Flyable, Swimmable {
    func fly() {
        print("Uçur")
    }
    
    func swim() {
        print("Üzür")
    }
}

let donald = Duck()
donald.eat()  // Yeyir
donald.fly()  // Uçur
donald.swim() // Üzür

Bu şəkildə, funksionallıq, bir sinfin irsiyyəti və bir neçə protokolun tətbiqi ilə genişləndirilir.