相关疑难解决方法(0)

最终静态方法的行为

我一直在玩静态方法的修饰符,并遇到了一个奇怪的行为.

我们知道,静态方法不能被覆盖,因为它们与类而不是实例相关联.

所以,如果我有下面的代码片段,它编译得很好

//Snippet 1 - Compiles fine
public class A {
    static void ts() {
    }
}

class B extends A {
    static void ts() {
    }
}
Run Code Online (Sandbox Code Playgroud)

但是如果我在A类中将final修饰符包含到静态方法中,则编译失败 ,B中的ts()不能覆盖A中的ts(); 重写方法是静态最终的.

当静态方法根本无法被覆盖时,为什么会发生这种情况?

java methods static final

117
推荐指数
4
解决办法
4万
查看次数

标签 统计

final ×1

java ×1

methods ×1

static ×1