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). Αυτό είναι ο πολυμορφισμός — μια διεπαφή, πολλές υλοποιήσεις.