![](/img/trans.png)
[英]class 'Anonymous class derived from PlaceSelectedListener' must either be declared abstract or implement abstract method
[英]implement an abstract method in derived class as static
我有这两个班
class A {
public void foo1() {
...;
foo2();
...;
}
protected abstract foo2();
}
class B extends A {
public foo2() {
......
}
我需要foo2是静态的,所以我可以做B.foo2(),但我也想保留A类中的功能。
有什么建议么?
}
您不能覆盖静态方法或将抽象方法实现为静态方法。
静态方法是在类定义上定义的,而不是在类实例上定义的。 抽象方法是在类实例上定义的。
你说的话实际上是没有道理的。
尽管我不太清楚为什么需要这样做,但是有一种解决方法:
class B {
@Override
public void foo() {
fooUtil();
}
public static void fooUtil() {
// your impl here
}
}
然后,您可以改为执行B.fooUtil()
,并使用其行为覆盖A.foo()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.