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