Polymorphie: Unterschied zwischen den Versionen
| (Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
| Zeile 5: | Zeile 5: | ||
Jetzt stellt sich die Frage, welche Methode ausgeführt werden soll. | 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. | + | 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. |
| Zeile 13: | Zeile 13: | ||
In diesem Fall wäre die Oberklasse die Klasse Auto, die Unterklassen wären verschiedene Autos wie zB ein Elektroauto und ein Automatikwagen. | In diesem Fall wäre 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. | Man kann jedes Auto öffnen und Schließen, allerdings kann dies bei den verschiedenen Autos durch verschiedene Mechanismen passieren. | ||
| − | Die | + | Die Polymorphie bestimmt nun welche Methode schließen() ausgeführt wird, die der Oberklasse oder die der Unterklasse. |
Aktuelle Version vom 6. Dezember 2016, 13:18 Uhr
Definition[Bearbeiten]
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[Bearbeiten]
Ein Beispiel wären Autos: In diesem Fall wäre 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 Polymorphie 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.