Sobes.tech
Junior — Middle

Εξηγήστε την έννοια του πολυμορφισμού στον αντικειμενοστραφή προγραμματισμό και πώς υλοποιείται στον κώδικα.

sobes.tech AI

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

Ο πολυμορφισμός στον αντικειμενοστραφή προγραμματισμό είναι η ικανότητα των αντικειμένων διαφορετικών κλάσεων να αντιδρούν διαφορετικά στα ίδια μηνύματα (κλήσεις μεθόδων). Αυτό επιτρέπει τη χρήση μιας ενιαίας διεπαφής για εργασία με διαφορετικούς τύπους αντικειμένων.

Στη Java, ο πολυμορφισμός υλοποιείται μέσω κληρονομικότητας και υπερκαθορισμού μεθόδων. Για παράδειγμα, μια βασική κλάση δηλώνει μια μέθοδο, και οι υποκλάσεις την υλοποιούν με τον δικό τους τρόπο.

Παράδειγμα:

class Animal {
    void sound() {
        System.out.println("Κάποιος ήχος");
    }
}

class Dog extends Animal {
    @Override
    void sound() {
        System.out.println("Γαύγισμα");
    }
}

class Cat extends Animal {
    @Override
    void sound() {
        System.out.println("Μαύρισμα");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal a1 = new Dog();
        Animal a2 = new Cat();
        a1.sound(); // Εκτυπώνει "Γαύγισμα"
        a2.sound(); // Εκτυπώνει "Μαύρισμα"
    }
}

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