Java Schulung - Jens.Trapp@DLR.De - August 1996

Überschreiben von Methoden


Bei den Funktionen setzen und Laenge_berechnen2 des vorherigen Beispiels handelt es sich um Funktionen, die die entsprechenden Funktionen ihrer Superklasse überschreiben! Die Funktionen der Klasse Punkt2D sind verdeckt. Um diese Funktionen aus dieser Klasse zu benutzen gibt es das Keywort super. (Analog zu this)

Mit diesem Keyword, kann man die Funktion Laenge_berechnen2() umschreiben.

	public double Laenge_berechnen2()
	{
		return super.Laenge_berechnen2()+z*z;
	}
	

Auf diese Weise kann man Code reduzieren und damit die Fehler reduzieren und die Wartung verringern. Außerdem erlaubt es bei konsequenter Anwendung, die Behandlung der Superklasse als Black Box.

Die Methode Laenge_berechnen() wird in Punkt3D nicht definiert. Die Funktion braucht nicht definiert zu werden, da der Code identisch zu Punkt2D.Laenge_berechnen() ist. Dennoch ist das Ergebnis gleich der Länge des dreidimensionalen Punktes, da die dort gerufene Funktion Laenge_berechnen2() ja überlagert ist!

Überschriebene Methoden können nur mit Hilfe des super Keywords innerhalb der Klasse angesprochen werden! D.h. es gibt von außerhalb der Klasse keine Möglichkeit die Methode Punkt2D.Laenge_berechnen2() auf ein Objekt der Klasse Punkt3D anzuwenden.

Mit final versehene Methoden können nicht überschrieben werden.