java - 为什么不能降低 Java 子类中方法的可见性?

标签 java polymorphism overriding subclassing

当您在子类中重写方法时降低方法的可见性时,为什么编译器会给出错误消息?

最佳答案

因为子类的每个实例仍然需要是基类的有效实例(请参阅 Liskov substitution principle )。

如果子类突然丢失了基类的一个属性(例如,一个公共(public)方法),那么它将不再是基类的有效替代品。

关于java - 为什么不能降低 Java 子类中方法的可见性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57848067/

相关文章:

java - 几个测试类后关闭浏览器

java - System.in 和自定义 InputStreamReader 之间的行为差​​异

java - 我可以在独立项目中使用 android.os.* 库吗?

java - 如何从docker容器内的输入文件读取

c# - 包装 C# 类以通过公共(public)接口(interface)与多态性一起使用

java - 避免显式强制转换的最佳方法

java - java编译器如何在继承中选择正确的方法和变量

C++:如何将派生类的容器传递给需要其基类容器的函数?

Java 没有接收到按键?

css - Material UI Styled() - 如何设置子组件的样式