为什么Java会限制隐藏方法的访问修饰符

时间:2015-12-18 23:14:41

标签: java static method-hiding

隐藏静态字段时,字段对子类的访问级别没有限制,它甚至可以是非静态的,也可以是其他数据类型。

另一方面,当隐藏静态方法时,隐藏静态方法和超类的子类中的静态方法可以允许比隐藏方法更多但不能更少的访问。

AFAIK,静态方法链接无论如何都是在编译时完成的,为什么会有这样的限制?

P.S。问题只是出于好奇。

1 个答案:

答案 0 :(得分:-2)

因为在子类中,您覆盖非私有超类方法但是覆盖阴影字段。至于设置更广泛的访问级别 - 你总是可以编写像

这样的东西
public void sublcassMethod() {
    supersecretSuperclassMethod();
}

所以没有必要在语言层面限制更广泛的访问权限 - 这种限制很容易被提交