Hallo,
nehmen wir an, wir erstellen eine Subklasse von einer Klasse. Also z.B.:
In dieser Subklasse soll eine Methode aus der 'Superclass' überschrieben werden.
In der überschriebenen Methode soll jetzt sozusagen zwischendrin im Original Code was geändert werden.
Deswegen hilft es hier nicht, per 'super.methodenName()' die alte Methode zuerst aufzurufen, und dann den neuen Code anzufügen.
Man muss also den den ganzen Original Code von der Methode kopieren, und in die überschriebene Methode einfügen, und dort dann die Änderungen machen.
Soweit eigentlich auch erstmal kein Problem. Jetzt aber zum Problem.
In diesem Code wird auch auf private Variablen und Funktionen zugegriffen. Auf diese hat die Subklasse keinen Zugriff.
Ist somit also erstmal nicht machbar.
Eine Möglichkeit wäre jetzt, in der 'Superclass' diese Variablen und Funktionen z.b. auf protected zu setzen. Aber das sieht sehr nach einer unsauberen Lösung aus.
Wir gehen jetzt auch mal davon aus, das die 'Superclass' nicht eine selber erstellte Klasse ist, wo man solch eine Änderung noch in Kauf nehmen könnte, sondern das dies z.B. eine Klasse aus der Java Bibliothek ist, die man verändern möchte. Da will man ja ungern was an der Original Klasse rumfummeln.
Was gibt es da sonst noch für Möglichkeiten?
nehmen wir an, wir erstellen eine Subklasse von einer Klasse. Also z.B.:
Code:
public class Subclass extends Superclass
In dieser Subklasse soll eine Methode aus der 'Superclass' überschrieben werden.
In der überschriebenen Methode soll jetzt sozusagen zwischendrin im Original Code was geändert werden.
Deswegen hilft es hier nicht, per 'super.methodenName()' die alte Methode zuerst aufzurufen, und dann den neuen Code anzufügen.
Man muss also den den ganzen Original Code von der Methode kopieren, und in die überschriebene Methode einfügen, und dort dann die Änderungen machen.
Soweit eigentlich auch erstmal kein Problem. Jetzt aber zum Problem.
In diesem Code wird auch auf private Variablen und Funktionen zugegriffen. Auf diese hat die Subklasse keinen Zugriff.
Ist somit also erstmal nicht machbar.
Eine Möglichkeit wäre jetzt, in der 'Superclass' diese Variablen und Funktionen z.b. auf protected zu setzen. Aber das sieht sehr nach einer unsauberen Lösung aus.
Wir gehen jetzt auch mal davon aus, das die 'Superclass' nicht eine selber erstellte Klasse ist, wo man solch eine Änderung noch in Kauf nehmen könnte, sondern das dies z.B. eine Klasse aus der Java Bibliothek ist, die man verändern möchte. Da will man ja ungern was an der Original Klasse rumfummeln.
Was gibt es da sonst noch für Möglichkeiten?