Junior — Middle
Μπορεί να υλοποιηθεί πολλαπλή κληρονομιά στη γλώσσα Swift;
sobes.tech AI
Απάντηση από AI
Στη γλώσσα Swift, η πολλαπλή κληρονομιά των κλάσεων δεν υποστηρίζεται, δηλαδή μια κλάση μπορεί να κληρονομήσει μόνο από μια υπερκλάση.
Ωστόσο, η Swift υποστηρίζει πρωτόκολλα (protocols), που επιτρέπουν την υλοποίηση λειτουργικότητας παρόμοια με την πολλαπλή κληρονομιά, μέσω της υλοποίησης πολλών πρωτοκόλλων.
Παράδειγμα:
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() // Κολυμπάει
Έτσι, για την επέκταση της λειτουργικότητας, χρησιμοποιείται η κληρονομικότητα μιας κλάσης και η υλοποίηση πολλών πρωτοκόλλων.