Junior — Middle
Czy można zaimplementować wielodziedziczenie w języku Swift?
sobes.tech AI
Odpowiedź od AI
W języku Swift nie obsługuje się wielokrotnego dziedziczenia klas, czyli klasa może dziedziczyć tylko po jednej klasie nadrzędnej.
Jednak Swift obsługuje protokoły, które pozwalają na implementację funkcjonalności podobnej do wielokrotnego dziedziczenia poprzez implementację wielu protokołów.
Przykład:
protocol Flyable {
func fly()
}
protocol Swimmable {
func swim()
}
class Animal {
func eat() {
print("Jedzenie")
}
}
class Duck: Animal, Flyable, Swimmable {
func fly() {
print("Latanie")
}
func swim() {
print("Pływanie")
}
}
let donald = Duck()
donald.eat() // Jedzenie
donald.fly() // Latanie
donald.swim() // Pływanie
W ten sposób, aby rozszerzyć funkcjonalność, używa się dziedziczenia jednej klasy i implementacji wielu protokołów.