我有这两个班级
class A {
public void foo1() {
...;
foo2();
...;
}
protected abstract foo2();
}
class B extends A {
public foo2() {
......
}
我需要foo2是静态的,所以我可以做B.foo2()但我也希望保留A类中的功能.n
有什么建议吗?
}
答案 0 :(得分:0)
您不能覆盖静态方法或将抽象方法实现为静态方法。
静态方法是在类定义上定义的,而不是在类实例上定义的。抽象方法是在类实例上定义的。
答案 1 :(得分:0)
你所说的事实上没有意义。
虽然我不明白为什么你需要这样做,但有一个解决方法:
class B {
@Override
public void foo() {
fooUtil();
}
public static void fooUtil() {
// your impl here
}
}
然后,您可以改为B.fooUtil()
,并使用其行为覆盖A.foo()
。