我的问题来自一个项目。所以让我抽象出一些无关的细节。
我有一个 JAVA 公共类 A,它有两个受保护的静态方法,foo() 和 bar()。方法 foo() 在其主体中调用 bar()。
public class A{
protected static foo(){
...
bar()
...
}
protected static bar(){print("A.bar()");}
}
现在我还有一个扩展 A 的 B 类。在 B 中,我覆盖 bar()
class B extends A{
@Overrides
static protected bar(){ print("A.bar() extended");
}
最后,我从 B 中的一个类调用 foo()
class B extends A{
...
public static main(){foo()}
}
我无法理解两点 1. 编译器 (Eclipse) 要求我删除 @Override 注释。为什么?2.最后main()输出“A.bar()”,表示解析后的bar()目标属于A类,但我打算重写bar(),用A的foo()调用修改后的bar( )。我怎样才能做到这一点?
你有什么意见?