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.