Sobes.tech
Junior — Middle

Jak w języku Swift osiąga się dziedziczenie wielokrotne klas lub protokołów?

sobes.tech AI

Odpowiedź od AI

W Swift, klasa może dziedziczyć tylko po jednej klasie nadrzędnej, czyli wielodziedziczenie klas nie jest obsługiwane. Jednak, aby osiągnąć podobny efekt, używa się dziedziczenia po jednej klasie i implementacji wielu protokołów. Protokoły w Swift definiują zestaw wymagań (metod, właściwości), które klasa, struktura lub wyliczenie muszą zaimplementować. W ten sposób, klasa może dziedziczyć zachowanie od klasy nadrzędnej i jednocześnie spełniać wiele protokołów, co pozwala na łączenie funkcjonalności.

Przykład:

protocol Drivable {
    func drive()
}

protocol Flyable {
    func fly()
}

class Vehicle {
    func start() {
        print("Pojazd uruchomiony")
    }
}

class FlyingCar: Vehicle, Drivable, Flyable {
    func drive() {
        print("Jazda po drodze")
    }
    
    func fly() {
        print("Latanie na niebie")
    }
}

let myFlyingCar = FlyingCar()
myFlyingCar.start()  // Pojazd uruchomiony
myFlyingCar.drive()  // Jazda po drodze
myFlyingCar.fly()    // Latanie na niebie

W ten sposób, wielodziedziczenie jest osiągane poprzez dziedziczenie jednej klasy i implementację wielu protokołów.