Sobes.tech
Junior — Middle

È possibile implementare l'ereditarietà multipla nel linguaggio Swift?

sobes.tech AI

Risposta dell'AI

Nel linguaggio Swift, l'ereditarietà multipla delle classi non è supportata, cioè una classe può ereditare solo da una superclasse.

Tuttavia, Swift supporta i protocolli, che consentono di implementare funzionalità simili all'ereditarietà multipla attraverso l'implementazione di più protocolli.

Esempio:

protocol Flyable {
    func fly()
}

protocol Swimmable {
    func swim()
}

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

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

let donald = Duck()
donald.eat()  // Mangiare
donald.fly()  // Volando
donald.swim() // Nuotando

In questo modo, per estendere la funzionalità si utilizza l'ereditarietà di una classe e l'implementazione di più protocolli.