使用 Java 工作。
我定义了几个不同的抽象类,每个抽象类都有一个名为 aCommonMethod 的静态方法。每个方法还有一个依赖方法,该方法本身调用 CommonMethod,如下所示:
public abstract class SomeAbstractClass{
public static void aCommonMethod() {
// does something
}
public static void someDependentMethod() {
//some stuff
aCommonMethod()
//some more stuff
}
}
方法 someDependentMethod 对于我的每个抽象类来说都是相同的,除了通过调用 CommonMethod 来调用的方法之外。
在 Java 中实现这个的惯用方法是什么?到目前为止,除了将 aCommonMethod 方法实际复制到每个抽象类中之外,我找不到任何有效的方法。显然,最好在某个地方只编写一次该方法,然后让我的抽象类以某种方式继承它。我找不到任何方法在 Java 中做到这一点。
最佳答案
首先,你不能重写静态方法,如果你希望不同的类有不同的行为,可能需要 template pattern .
示例:
public abstract class SomeAbstractClass{
public abstract void aCommonMethod();
public void someDependentMethod() {
//some stuff
aCommonMethod();
//some more stuff
}
}
public abstract class SomeClass{
public void aCommonMethod() {
// Do your thing
}
}
public abstract class SomeOtherClass{
public void aCommonMethod() {
// Do your thing
}
}
new SomeClass().someDependentMethod();
new SomeOtherClass().someDependentMethod();
关于java - 如何实现抽象子类继承的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36631986/