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.