最佳答案
我一直在使用静态方法的修饰符,遇到了一个奇怪的行为。
我们知道,静态方法不能被重写,因为它们与类而不是实例相关联。
因此,如果我有下面的代码片段,它可以很好地编译
//Snippet 1 - Compiles fine
public class A {
static void ts() {
}
}
class B extends A {
static void ts() {
}
}
但是如果我在类 A 中包含静态方法的 final 修饰符,那么编译就会失败 B 中的 ts ()不能重写 A 中的 ts () ; 重写的方法是 static final 。
为什么静态方法根本无法重写时会发生这种情况?