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.