Sobes.tech
Junior — Middle

Μπορείς να απαριθμήσεις τους διάφορους τύπους πολυμορφισμού στον αντικειμενοστραφή προγραμματισμό;

sobes.tech AI

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

Στον αντικειμενοστραφή προγραμματισμό (ΟΟΠ) διακρίνονται διάφοροι βασικοί τύποι πολυμορφισμού:

  1. Υποτύπος Πολυμορφισμός (Subtype Polymorphism) — ο πιο συνηθισμένος τύπος, υλοποιείται μέσω κληρονομικότητας και υπερκαθορισμού μεθόδων. Επιτρέπει τη χρήση αντικειμένων υποκατηγοριών αντί αντικειμένων της βασικής κλάσης.

  2. Παραμετρικός Πολυμορφισμός (Parametric Polymorphism) — υλοποιείται μέσω γενικών τύπων (generics), όπου συναρτήσεις ή κλάσεις λειτουργούν με οποιοδήποτε τύπο δεδομένων.

  3. Ad-hoc Πολυμορφισμός (Ad-hoc Polymorphism) — περιλαμβάνει υπερφόρτωση συναρτήσεων και τελεστών, όπου μια συνάρτηση έχει πολλές υλοποιήσεις με διαφορετικούς τύπους παραμέτρων.

  4. Τελεσίδικος Πολυμορφισμός (Runtime Polymorphism) — επιτυγχάνεται μέσω εικονικών μεθόδων και δυναμικής δέσμευσης, όπου η κλήση της μεθόδου καθορίζεται κατά την εκτέλεση.

Παράδειγμα υποτύπου πολυμορφισμού σε Swift (iOS):

class Animal {
    func sound() {
        print("Κάποιος ήχος")
    }
}

class Dog: Animal {
    override func sound() {
        print("Γαύγισμα")
    }
}

class Cat: Animal {
    override func sound() {
        print("Μαού")
    }
}

let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
    animal.sound()  // Η κλήση της μεθόδου εξαρτάται από τον πραγματικό τύπο του αντικειμένου
}