Sobes.tech
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 προάγει τη σύνθεση μέσω πρωτοκόλλων αντί για πολλαπλή κληρονομιά κλάσεων.