Sobes.tech
Junior — Middle

Μπορεί να υλοποιηθεί κληρονομικότητα για μια δομή δεδομένων;

sobes.tech AI

Απάντηση από AI

Στο iOS (Swift), οι δομές (struct) δεν υποστηρίζουν την κλασική κληρονομικότητα όπως οι κλάσεις. Δηλαδή, δεν μπορεί να δημιουργηθεί μια δομή που κληρονομεί ιδιότητες και μεθόδους από μια άλλη δομή.

Ωστόσο, οι δομές μπορούν να υλοποιούν πρωτόκολλα (protocols), επιτρέποντάς τους να έχουν κοινά interfaces και συμπεριφορές. Αυτό χρησιμοποιείται συχνά αντί της κληρονομικότητας για την επίτευξη πολυμορφισμού.

Παράδειγμα:

protocol Drawable {
    func draw()
}

struct Circle: Drawable {
    func draw() {
        print("Ζωγραφίζουμε έναν κύκλο")
    }
}

struct Square: Drawable {
    func draw() {
        print("Ζωγραφίζουμε ένα τετράγωνο")
    }
}

Έτσι, η άμεση κληρονομικότητα για δομές δεν είναι δυνατή, αλλά μπορούν να χρησιμοποιηθούν πρωτόκολλα για κοινή λειτουργικότητα.