Sobes.tech
Junior — Middle

Lehetséges-e több osztály öröklését egyszerre megvalósítani a Swift nyelvben?

sobes.tech MI

Válasz az MI-től

Swiftben nem örökölhet több osztályból egyszerre, azaz a többosztályos öröklés nem támogatott. Egy osztálynak csak egy szülője lehet. Ehelyett a Swift protokollokat használ a hasonló funkcionalitás eléréséhez: egy osztály több protokollt is megvalósíthat, ami lehetővé teszi különböző viselkedések és tulajdonságok hozzáadását anélkül, hogy több öröklést alkalmaznánk.

Protokollok implementációjának példája:

protocol Drivable {
    func drive()
}

protocol Flyable {
    func fly()
}

class Vehicle: Drivable {
    func drive() {
        print("Sodródik")
    }
}

class FlyingCar: Vehicle, Flyable {
    func fly() {
        print("Repül")
    }
}

let car = FlyingCar()
car.drive() // Sodródik
car.fly()   // Repül

Így a Swift a protokollokon keresztüli összetételt ösztönzi a többosztályos öröklés helyett.