Junior — Middle
Je možné v jazyku Swift implementovať viacnásobné dedičstvo?
sobes.tech AI
Odpoveď od AI
V jazyku Swift nie je podporované viacnásobné dedičstvo tried, čo znamená, že trieda môže dediť iba od jednej nadtriedy.
Avšak Swift podporuje protokoly, ktoré umožňujú implementovať funkčnosť podobnú viacnásobnému dedičstvu prostredníctvom implementácie viacerých protokolov.
Príklad:
protocol Flyable {
func fly()
}
protocol Swimmable {
func swim()
}
class Animal {
func eat() {
print("Jede")
}
}
class Duck: Animal, Flyable, Swimmable {
func fly() {
print("Letí")
}
func swim() {
print("Pláva")
}
}
let donald = Duck()
donald.eat() // Jede
donald.fly() // Letí
donald.swim() // Pláva
Týmto spôsobom je možné rozšíriť funkčnosť pomocou dedičstva jednej triedy a implementácie viacerých protokolov.