Junior — Middle
Μπορεί να υλοποιηθεί πολλαπλή κληρονομιά από πολλαπλές κλάσεις ταυτόχρονα στη γλώσσα Swift;
sobes.tech AI
Απάντηση από AI
Στο Swift, δεν είναι δυνατόν να κληρονομήσετε από πολλαπλές κλάσεις ταυτόχρονα, δηλαδή η πολλαπλή κληρονομιά κλάσεων δεν υποστηρίζεται. Μια κλάση μπορεί να έχει μόνο έναν γονέα. Αντ' αυτού, το Swift χρησιμοποιεί πρωτόκολλα για την επίτευξη παρόμοιας λειτουργικότητας: μια κλάση μπορεί να υλοποιεί πολλά πρωτόκολλα, επιτρέποντας την προσθήκη διαφορετικών συμπεριφορών και ιδιοτήτων χωρίς πολλαπλή κληρονομιά.
Παράδειγμα υλοποίησης πρωτοκόλλων:
protocol Drivable {
func drive()
}
protocol Flyable {
func fly()
}
class Vehicle: Drivable {
func drive() {
print("Οδηγεί")
}
}
class FlyingCar: Vehicle, Flyable {
func fly() {
print("Πετάει")
}
}
let car = FlyingCar()
car.drive() // Οδηγεί
car.fly() // Πετάει
Έτσι, το Swift προάγει τη σύνθεση μέσω πρωτοκόλλων αντί για πολλαπλή κληρονομιά κλάσεων.