Überschreiben (override) von Methoden

Überladen (overload) ist nicht gleich überschreiben

Von überladen (overload) von Methoden sprechen wir dann, wenn zwei Methoden in derselben Klasse oder Vererbungshierarchie denselben Namen aber eine andere Signatur (= Name + Parameterliste) aufweisen.

Überschreiben (override)

Falls zwei Methoden in derselben Vererbungshierarchie (aber nicht in derselben Klasse) dieselbe Signatur aufweisen, so sprechen wir vom Überscrheiben (override).

Signatur

Die Signatur einer Methode ist

Regeln

Die folgenden Regeln müssen beim Überschreiben eingehalten werden:

Achtung Fangfrage

In Prüfungsfragen wird oft gefragt, ob eine überladene (overloaded) Methode den selben Returnwert oder die selben Exceptions aufweisen muss. Das ist ein guter Witz! Überladene Methoden haben eine andere Signatur und sind für den Compiler wie zwei komplett verschiedene Methoden zu betrachten. Natürlich dürfen sie andere Returnwerte und Exceptions aufweisen; selbst in Subklassen!