Junior — Middle
Czy można jednocześnie zaimplementować dziedziczenie po wielu klasach w języku Swift?
sobes.tech AI
Odpowiedź od AI
W Swift nie można dziedziczyć jednocześnie po wielu klasach, czyli wielokrotne dziedziczenie klas nie jest obsługiwane. Klasa może mieć tylko jednego rodzica. Zamiast tego Swift używa protokołów, aby osiągnąć podobną funkcjonalność — klasa może implementować wiele protokołów, co pozwala na dodanie różnych zachowań i właściwości bez wielokrotnego dziedziczenia.
Przykład implementacji protokołów:
protocol Drivable {
func drive()
}
protocol Flyable {
func fly()
}
class Vehicle: Drivable {
func drive() {
print("Jadę")
}
}
class FlyingCar: Vehicle, Flyable {
func fly() {
print("Lecę")
}
}
let car = FlyingCar()
car.drive() // Jadę
car.fly() // Lecę
W ten sposób Swift promuje kompozycję poprzez protokoły zamiast wielokrotnego dziedziczenia klas.