Sobes.tech
Junior — Middle

Este posibil să implementați moștenirea multiplă în limbajul Swift?

sobes.tech AI

Răspuns de la AI

În limbajul Swift, moștenirea multiplă a claselor nu este suportată, adică o clasă poate moșteni doar de la o singură superclasă.

Cu toate acestea, Swift suportă protocoale, care permit implementarea funcționalității similare cu moștenirea multiplă prin implementarea mai multor protocoale.

Exemplu:

protocol Flyable {
    func fly()
}

protocol Swimmable {
    func swim()
}

class Animal {
    func eat() {
        print("Mănâncă")
    }
}

class Duck: Animal, Flyable, Swimmable {
    func fly() {
        print("Zboară")
    }
    
    func swim() {
        print("Înoată")
    }
}

let donald = Duck()
donald.eat()  // Mănâncă
donald.fly()  // Zboară
donald.swim() // Înoată

Astfel, pentru extinderea funcționalității, se folosește moștenirea unei clase și implementarea mai multor protocoale.