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

标签 java static method-hiding

<分区>

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

另一方面,当隐藏静态方法时,隐藏父类(super class)静态方法的子类静态方法可以允许比隐藏方法更多而不是更少的访问。

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

附言这个问题只是出于好奇。

最佳答案

因为在子类中你重写了非私有(private)父类(super class)方法但是隐藏了字段。至于设置更广泛的访问级别——你总是可以这样写

public void sublcassMethod() {
    supersecretSuperclassMethod();
}

因此在语言级别限制覆盖更广泛的访问是没有意义的——这样的限制很容易实现

关于java - 为什么Java要限制隐藏方法的访问修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34365337/

相关文章:

java - 使用android studio IDE隐藏jar中方法的实现

java - 在mapreduce程序中使用静态变量

scala - 静态方法更可组合吗?

java - 我可以初始化一个静态成员并跨线程共享吗?

c++ - 在 C++ 中隐藏实现细节

objective-c - 从 GCD dispatch_async block 中调用 super : is it safe?

java - 如何在 log4j2 中创建自定义 Appender?

java - 有人用过 "GWT Designer"吗?

java - 安全的?将 Excel 函数转换为 Web 脚本

java - 捕获 Ajax 表单提交中的服务器端错误