Sobes.tech
Junior — Middle

Ako sa v jazyku Swift dosahuje viacnásobné dedičstvo od tried alebo protokolov?

sobes.tech AI

Odpoveď od AI

V jazyku Swift môže trieda dediť iba od jednej nadtriedy, čo znamená, že viacnásobné dedičstvo tried nie je podporované. Avšak, na dosiahnutie podobného efektu sa používa dedičstvo od jednej triedy a implementácia viacerých protokolov. Protokoily v Swift definujú súbor požiadaviek (metód, vlastností), ktoré musí implementovať trieda, štruktúra alebo enumerácia. Týmto spôsobom môže trieda dediť správanie od nadtriedy a súčasne vyhovovať viacerým protokolom, čo umožňuje kombinovať funkcionalitu.

Príklad:

protocol Drivable {
    func drive()
}

protocol Flyable {
    func fly()
}

class Vehicle {
    func start() {
        print("Vozidlo spustené")
    }
}

class FlyingCar: Vehicle, Drivable, Flyable {
    func drive() {
        print("Jazda po ceste")
    }
    
    func fly() {
        print("Lietanie na oblohe")
    }
}

let myFlyingCar = FlyingCar()
myFlyingCar.start()  // Vozidlo spustené
myFlyingCar.drive()  // Jazda po ceste
myFlyingCar.fly()    // Lietanie na oblohe

Týmto spôsobom je dosiahnuté viacnásobné dedičstvo prostredníctvom dedičstva z jednej triedy a implementácie viacerých protokolov.