Polymorphie: Unterschied zwischen den Versionen

Aus wiki.kgl-ratingen.de
Wechseln zu: Navigation, Suche
Zeile 26: Zeile 26:
  
  
[[Datei:Datei.png|400px|thumb|left|Beispiel]]
+
[[Datei:Datei.png|800px|thumb|left|Beispiel]]

Version vom 6. Dezember 2016, 13:01 Uhr

Definition

Wenn Methoden einer Oberklasse in eine Unterklasse überschrieben werden, kann es sein, dass die Signatur der Methode die gleiche ist, sich die Anweisungen im Rumpf jedoch unterscheiden.

Jetzt stellt sich die Frage, welche Methode ausgeführt werden soll.

Die Polymorphie schafft es den ursprünglichen Typ des Objekts zu ermitteln und die Methode der entsprechenden Klasse zu wählen, welche dann ausgeführt wird.


Beispiel

Ein Beispiel wären Autos: In diesem Fall wären die Oberklasse die Klasse Auto, die Unterklassen wären verschiedene Autos wie zB ein Elektroauto und ein Automatikwagen. Man kann jedes Auto öffnen und Schließen, allerdings kann dies bei den verschiedenen Autos durch verschiedene Mechanismen passieren. Die Polymorphe bestimmt nun welche Methode schließen() ausgeführt wird, die der Oberklasse oder die der Unterklasse.


Elektroauto elektroauto01 = new Elektroauto;

Auto auto01 = elektroauto01;

auto01.schließen();

auto01 ist elektroauto01 und war somit ursprünglich ein Elektroauto, weshalb die Methode der Klasse Elektroauto ausgeführt wird.


Beispiel