Sobes.tech
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.