Sobes.tech
Junior — Middle

Kako se u jeziku Swift postiže nasleđivanje od više klasa ili protokola?

sobes.tech АИ

Одговор од АИ

U Swift-u, klasa može nasleđivati samo od jedne superklase, što znači da višestruko nasleđivanje klasa nije podržano. Međutim, da bi se postigao sličan efekat, koristi se nasleđivanje od jedne klase i implementacija više protokola. Protokoli u Swift-u definišu skup zahteva (metoda, svojstava) koje klasa, struktura ili enumeracija mora implementirati. Na taj način, klasa može naslediti ponašanje od superklase i istovremeno odgovarati na više protokola, što omogućava kombinovanje funkcionalnosti.

Primer:

protocol Drivable {
    func drive()
}

protocol Flyable {
    func fly()
}

class Vehicle {
    func start() {
        print("Vozilo je pokrenuto")
    }
}

class FlyingCar: Vehicle, Drivable, Flyable {
    func drive() {
        print("Vožnja po putu")
    }
    
    func fly() {
        print("Let u nebu")
    }
}

let myFlyingCar = FlyingCar()
myFlyingCar.start()  // Vozilo je pokrenuto
myFlyingCar.drive()  // Vožnja po putu
myFlyingCar.fly()    // Let u nebu

Na ovaj način, višestruko nasleđivanje se postiže putem nasleđivanja jedne klase i implementacije više protokola.