Ich möchte ermitteln können, ob eine Basisklassenmethode von einer Unterklasse speziell überschrieben wurde, weil vor dem Aufruf und den meisten Unterklassen eine teure Einrichtung erforderlich ist unser System überschreibt es nicht. Kann es getestet werden, indem Reflection bereitgestellte Methoden behandelt? Oder gibt es eine andere Möglichkeit zu testen, ob eine Klassenmethode überschrieben wird?Gibt es eine Möglichkeit festzustellen, ob eine Methode in einer Java-Klasse überschrieben wurde
z.B.
class BaseClass {
void aMethod() { // don nothing }
protected boolean aMethodHasBeenOverridden() {
return(// determine if aMethod has been overridden by a subclass);
}
}
Problem, wenn das Verfahren auf einer Zwischenklasse zwischen der Basisklasse und der Blatt Klasse überschrieben wird. – chrylis
@chrylis Danke, dass du das herausgibst. Der Vergleich der deklarierenden Klasse mit 'Base.class' löst dieses Problem. – dasblinkenlight
Minor note - C++ verwendet die Terminologie ** Basisklasse ** und ** abgeleitete Klasse **; Java verwendet die Terminologie ** Superklasse ** und ** Unterklasse **. – Nayuki