Wywołaj metodę superklasy automatycznie
Rozważ następującą klasę
class A{
public void init(){
//do this first;
}
public void atEnd(){
//do this after init of base class ends
}
}
class B1 extends A{
@Override
public void init()
{
super.init();
//do new stuff.
//I do not want to call atEnd() method here...
}
}
Mam kilka klas podrzędnych B1, B2, ... Bn, które są już opracowane. Wszystkie z nich rozszerzają klasę A. Jeśli chcę dodać nową funkcjonalność we wszystkich z nich, najlepszym miejscem do tego jest zdefiniowanie tego w metodzie w klasie A. Ale warunkiem jest, aby metoda zawsze była wywoływana automatycznie tuż przed metoda init () kończy klasę potomną. Jednym z podstawowych sposobów jest ponowne dodanie wywołania metody atEnd () na końcu metody init () klas potomnych. Ale czy jest jakiś inny sposób, aby to zrobić mądrze?