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() θα εκτελείται ανάλογα με τον πραγματικό τύπο του αντικειμένου — αυτό είναι πολυμορφισμός.