Junior — Middle
Lze v jazyce Swift implementovat vícenásobné dědičnosti?
sobes.tech AI
Odpověď od AI
V jazyce Swift není podporováno vícenásobné dědění tříd, což znamená, že třída může dědit pouze od jedné nadtřídy.
Nicméně Swift podporuje protokoly, které umožňují implementovat funkčnost podobnou vícenásobnému dědění prostřednictvím implementace několika protokolů.
Příklad:
protocol Flyable {
func fly()
}
protocol Swimmable {
func swim()
}
class Animal {
func eat() {
print("Jí")
}
}
class Duck: Animal, Flyable, Swimmable {
func fly() {
print("Letí")
}
func swim() {
print("Plave")
}
}
let donald = Duck()
donald.eat() // Jí
donald.fly() // Letí
donald.swim() // Plave
Tímto způsobem je možné rozšířit funkčnost pomocí dědění jedné třídy a implementace více protokolů.