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?

questionAnswers(4)

yourAnswerToTheQuestion