Junior
Τι είναι ο πολυμορφισμός στον προγραμματισμό;
sobes.tech AI
Απάντηση από AI
Ο πολυμορφισμός (από τα ελληνικά "πολλές μορφές") είναι η ικανότητα διαφορετικών αντικειμένων να ανταποκρίνονται διαφορετικά στο ίδιο μήνυμα (κλήση μεθόδου), ανάλογα με τον τύπο τους.
Στον αντικειμενοστραφή προγραμματισμό, ο πολυμορφισμός επιτρέπει:
- Να εργάζεστε με αντικείμενα διαφορετικών κλάσεων μέσω μιας κοινής διεπαφής ή μιας βασικής κλάσης.
- Να δημιουργείτε πιο ευέλικτο και επεκτάσιμο κώδικα.
Οι κύριοι τύποι πολυμορφισμού:
- Πολυμορφισμός κατά το χρόνο μεταγλώττισης (στατικός): υλοποιείται μέσω υπερφόρτωσης μεθόδων (method overloading). Μέθοδοι με το ίδιο όνομα αλλά διαφορετικές υπογραφές (αριθμός ή τύποι παραμέτρων) ορίζονται σε μια κλάση.
- Πολυμορφισμός κατά το χρόνο εκτέλεσης (δυναμικός): υλοποιείται μέσω υπερκάλυψης μεθόδων (method overriding). Μια μέθοδος σε μια υποκλάση έχει την ίδια υπογραφή με αυτή στην υπερκλάση. Το ποια μέθοδος θα κληθεί καθορίζεται κατά την εκτέλεση, ανάλογα με τον πραγματικό τύπο του αντικειμένου.
Παράδειγμα σε Python (δυναμικός πολυμορφισμός):
class Animal:
def sound(self):
pass # Βασική μέθοδος, που θα υπερκαλυφθεί
class Dog(Animal):
def sound(self):
# Υπερκάλυψη της μεθόδου sound για την κλάση Dog
print("Woof")
class Cat(Animal):
def sound(self):
# Υπερκάλυψη της μεθόδου sound για την κλάση Cat
print("Meow")
# Συνάρτηση που λειτουργεί με αντικείμενα μέσω της βασικής κλάσης Animal
def make_animal_sound(animal):
animal.sound()
# Χρήση του πολυμορφισμού
dog = Dog()
cat = Cat()
make_animal_sound(dog) # Θα καλέσει Dog.sound() -> Woof
make_animal_sound(cat) # Θα καλέσει Cat.sound() -> Meow