Sobes.tech
Junior — Middle

Cum se realizează moștenirea multiplă de clase sau protocoale în limbajul Swift?

sobes.tech AI

Răspuns de la AI

În Swift, o clasă poate moșteni doar de la o singură superclasă, adică nu este suportată moștenirea multiplă a claselor. Cu toate acestea, pentru a obține un efect similar, se folosește moștenirea de la o clasă și implementarea mai multor protocoale. Protocoalele în Swift definesc un set de cerințe (metode, proprietăți) pe care o clasă, structură sau enumerare trebuie să le implementeze. Astfel, o clasă poate moșteni comportament de la o superclasă și în același timp să respecte mai multe protocoale, ceea ce permite combinarea funcționalităților.

Exemplu:

protocol Drivable {
    func drive()
}

protocol Flyable {
    func fly()
}

class Vehicle {
    func start() {
        print("Vehicul pornit")
    }
}

class FlyingCar: Vehicle, Drivable, Flyable {
    func drive() {
        print("Conducere pe drum")
    }
    
    func fly() {
        print("Zburând pe cer")
    }
}

let myFlyingCar = FlyingCar()
myFlyingCar.start()  // Vehicul pornit
myFlyingCar.drive()  // Conducere pe drum
myFlyingCar.fly()    // Zburând pe cer

Astfel, moștenirea multiplă se realizează prin moștenirea unei clase și implementarea mai multor protocoale.