提前感谢您的帮助。
我正在建立一个图书馆,并希望做到以下几点。我有一个抽象类,我的库的用户必须扩展,以便使用许多库功能。在这个抽象类中,我有一个抽象方法。在这个抽象方法中,有一段代码必须在某个时刻执行,只要它在每次调用这个特定的抽象方法时运行都无关紧要。在这段代码中,一个对象数组被逐步更新(这对我的问题无关紧要,我只想清楚需要执行的代码是什么)。
一个可能的解决方案可能是使用重载(即,明确定义方法而不是使其抽象)。但是,这仅在我的库的用户调用super方法时才有效。此外,采用这种方法并不会强制用户专门定义此方法,因为这首先使这个方法变得抽象。
是否有人断言这段代码(我希望使用私有方法调用代码重用运行)在此方法中运行,或者我必须提出另一种解决方案(即不要在其中运行此代码)抽象方法,在包含此代码的完全定义的函数内调用抽象方法)?
答案 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()
}