Polymorphie
Kategorie: Programmierung
Definition
Polymorphie bedeutet Vielgestaltigkeit. In der objektorientierten Programmierung können verschiedene Objekte über dieselbe Schnittstelle angesprochen werden, obwohl sie sich unterschiedlich verhalten.
Warum Polymorphie?
Polymorphie ermöglicht flexiblen und erweiterbaren Code.
Programme müssen nicht wissen, welcher konkrete Objekttyp verwendet wird. Sie arbeiten mit der gemeinsamen Oberklasse oder einem Interface.
Bedeutung des Begriffs
Das Wort stammt aus dem Griechischen:
Poly = viele
Morph = Formen
Polymorphie bedeutet also 'viele Formen'.
Praxisbeispiel
Klasse Fahrzeug
Unterklassen:
• Auto
• Motorrad
• LKW
Alle besitzen eine Methode fahren(), verhalten sich aber unterschiedlich.
Basisklasse
class Fahrzeug {
fahren() {
console.log('Fahrzeug fährt');
}
}
Unterklassen
class Auto extends Fahrzeug {
fahren() {
console.log('Auto fährt');
}
}
class Motorrad extends Fahrzeug {
fahren() {
console.log('Motorrad fährt');
}
}
Polymorpher Aufruf
const fahrzeug: Fahrzeug = new Auto();
fahrzeug.fahren();
Ausgabe:
Auto fährt
Obwohl die Variable vom Typ Fahrzeug ist, wird die Methode der Klasse Auto ausgeführt.
Methodenüberschreibung (Override)
Polymorphie basiert häufig auf dem Überschreiben von Methoden.
Die Unterklasse ersetzt dabei die Implementierung der Oberklasse durch ihre eigene Version.
Dynamische Bindung
Welche Methode tatsächlich ausgeführt wird, entscheidet sich erst zur Laufzeit.
Dies nennt man dynamische Bindung.
Vorteile
✓ Flexibler Code
✓ Höhere Erweiterbarkeit
✓ Weniger Sonderfälle
✓ Einfachere Wartung
✓ Bessere Wiederverwendbarkeit
Praxisbeispiel Tiere
Basisklasse:
Tier
Unterklassen:
• Hund
• Katze
• Vogel
Alle besitzen die Methode geraeuschMachen(), aber jede Tierart erzeugt ein anderes Geräusch.
Polymorphie und Vererbung
Polymorphie baut häufig auf Vererbung auf.
Eine Oberklasse definiert gemeinsame Methoden, die Unterklassen individuell umsetzen können.
Polymorphie und Interfaces
Polymorphie kann auch durch Interfaces erreicht werden.
Mehrere Klassen implementieren dieselbe Schnittstelle und können dadurch einheitlich angesprochen werden.
Unterschied zur Vererbung
Vererbung beschreibt die Beziehung zwischen Klassen.
Polymorphie beschreibt das unterschiedliche Verhalten von Objekten trotz gemeinsamer Schnittstelle.
Praxisbeispiel Zahlungssystem
Interface Zahlung
Implementierungen:
• PayPal
• Kreditkarte
• Sofortüberweisung
Alle besitzen die Methode bezahlen(), führen diese jedoch unterschiedlich aus.
Typische Prüfungsfrage
Was versteht man unter Polymorphie?
Mehrere Objekte können über dieselbe Schnittstelle angesprochen werden und verhalten sich dabei unterschiedlich.
Typische Prüfungsfrage
Worauf basiert Polymorphie häufig?
Auf Vererbung und Methodenüberschreibung.
Typische Prüfungsfrage
Wann entscheidet sich, welche Methode ausgeführt wird?
Erst zur Laufzeit durch die dynamische Bindung.
Merksatz
Gleicher Methodenaufruf, unterschiedliches Verhalten – das ist Polymorphie.