Polymorphie (Programmierung)
Polymorphie ("Vielgestaltigkeit") bedeutet, dass Funktionen bzw. Methoden einem bestimmten Typ bzw. einer bestimmten Klasse zugeordnet sind, und je nach Typ/Klasse eines bestimmten Objekts die zugehörige Funktion/Methode ausgeführt wird.Man unterscheidet zwischen Kompilationszeit-Polymorphie (statisches Binden) und Laufzeit-Polymorphie (dynamisches o. spätes Binden). Kompilationszeit-Polymorphie bedeutet, dass der statische Typ des Objekts die aufgerufene Funktion/Methode bestimmt. Dies funktioniert nur für Sprachen mit statischen Typen, und wird typischerweise mit Überladen und generischen Funktionen implementiert.
Laufzeit-Polymorphie bedeutet, dass die Klasse des Objekts zur Laufzeit bestimmt, welche Methode aufgerufen wird ("späte Bindung"). Diese muss nicht unbedingt identisch mit dem statischen Typ sein (sofern dieser die gewünschte Methode überhaupt besitzt). Die Laufzeit-Polymorphie ist eine der wichtigsten Bestandteile der objektorientierten Programmierung.