保证抽象java方法调用特定的私有方法

时间:2016-02-23 00:53:50

标签: java abstract-class assert

提前感谢您的帮助。

我正在建立一个图书馆,并希望做到以下几点。我有一个抽象类,我的库的用户必须扩展,以便使用许多库功能。在这个抽象类中,我有一个抽象方法。在这个抽象方法中,有一段代码必须在某个时刻执行,只要它在每次调用这个特定的抽象方法时运行都无关紧要。在这段代码中,一个对象数组被逐步更新(这对我的问题无关紧要,我只想清楚需要执行的代码是什么)。

一个可能的解决方案可能是使用重载(即,明确定义方法而不是使其抽象)。但是,这仅在我的库的用户调用super方法时才有效。此外,采用这种方法并不会强制用户专门定义此方法,因为这首先使这个方法变得抽象。

是否有人断言这段代码(我希望使用私有方法调用代码重用运行)在此方法中运行,或者我必须提出另一种解决方案(即不要在其中运行此代码)抽象方法,在包含此代码的完全定义的函数内调用抽象方法)?

1 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情:

public abstract class Super{
    public final void doThing(){
        setup();

        // Do everything else
    }

    public abastract void setup();
}

public class Child extends Super{

    // Child class must implement setup()

}