Junior — Middle
Lehetséges több öröklés megvalósítása a Swift nyelvben?
sobes.tech MI
Válasz az MI-től
Swift nyelvben nem támogatott a több öröklés osztályok között, azaz egy osztály csak egy szuperosztálytól örökölhet.
Azonban Swift támogat protokollokat, amelyek lehetővé teszik több protokoll megvalósításával a több örökléshez hasonló funkcionalitás megvalósítását.
Példa:
protocol Flyable {
func fly()
}
protocol Swimmable {
func swim()
}
class Animal {
func eat() {
print("Eszik")
}
}
class Duck: Animal, Flyable, Swimmable {
func fly() {
print("Repül")
}
func swim() {
print("Úszik")
}
}
let donald = Duck()
donald.eat() // Eszik
donald.fly() // Repül
donald.swim() // Úszik
Így a funkcionalitás bővíthető egy osztály öröklésével és több protokoll megvalósításával.