Junior
Τι είναι η πολυμορφία στον προγραμματισμό;
sobes.tech AI
Απάντηση από AI
Ο πολυμορφισμός είναι η ικανότητα αντικειμένων διαφορετικών κλάσεων να ανταποκρίνονται με διαφορετικό τρόπο σε ίδια μηνύματα (κλήσεις μεθόδων).
Με απλά λόγια, η ίδια μέθοδος μπορεί να συμπεριφέρεται διαφορετικά ανάλογα με το αντικείμενο που την καλεί. Αυτό επιτυγχάνεται μέσω κληρονομικότητας και υπερκαθορισμού μεθόδων, καθώς και μέσω της χρήσης διεπαφών.
Παράδειγμα σε Swift:
protocol Animal {
func makeSound()
}
class Dog: Animal {
func makeSound() {
print("Γαβ")
}
}
class Cat: Animal {
func makeSound() {
print("Μιαου")
}
}
func playSound(animal: Animal) {
animal.makeSound()
}
let dog = Dog()
let cat = Cat()
playSound(animal: dog) // Εκτύπωση: Γαβ
playSound(animal: cat) // Εκτύπωση: Μιαου
Εδώ, η συνάρτηση playSound δέχεται ένα αντικείμενο τύπου Animal, αλλά ανάλογα με την συγκεκριμένη κλάση (Dog ή Cat), καλείται η αντίστοιχη υλοποίηση της μεθόδου makeSound.