Sobes.tech
Junior — Middle

Πώς επιτυγχάνεται ο μηχανισμός πολυμορφισμού στη Java και πώς υλοποιείται στον κώδικα;

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 myDog = new Dog();
        Animal myCat = new Cat();

        myDog.sound(); // Εκτυπώνει: Γαύγισμα
        myCat.sound(); // Εκτυπώνει: Μαύρισμα
    }
}

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