Junior — Middle
Може ли да се реализира множествено наследяване в езика Swift?
sobes.tech AI
Отговор от AI
В езика Swift не се поддържа множествено наследяване на класове, тоест клас може да наследява само от един суперклас.
Въпреки това, Swift поддържа протоколи, които позволяват реализиране на функционалност, подобна на множественото наследяване, чрез реализиране на няколко протокола.
Пример:
protocol Flyable {
func fly()
}
protocol Swimmable {
func swim()
}
class Animal {
func eat() {
print("Яде")
}
}
class Duck: Animal, Flyable, Swimmable {
func fly() {
print("Лети")
}
func swim() {
print("Плува")
}
}
let donald = Duck()
donald.eat() // Яде
donald.fly() // Лети
donald.swim() // Плува
По този начин, за разширяване на функционалността се използва наследяване на един клас и реализиране на няколко протокола.