当前位置: 代码迷 >> J2SE >> 子类方法为啥不能低于超类方法的可见性
  详细解决方案

子类方法为啥不能低于超类方法的可见性

热度:2883   发布时间:2013-02-25 00:00:00.0
子类方法为什么不能低于超类方法的可见性
如题

------解决方案--------------------------------------------------------
多态原因,比如:Person person = new Man();
这里man是person的子类,如果person中有个方法say,现在Man却变成了private的了,那如果用person.say()在运行的时候不是会报错呀,说没权访问!!
------解决方案--------------------------------------------------------
面向对象3大特性
封装,继承,多态
这个其实也是特性之一,原因上边已经说得很清楚了

------解决方案--------------------------------------------------------
违反 LSP。
引用
Liskov于1987年提出了一个关于继承的原则“Inheritance should ensure that any property proved about supertype objects also holds for subtype objects.”——“继承必须确保超类所拥有的性质在子类中仍然成立。”也就是说,当一个子类的实例应该能够替换任何其超类的实例时,它们之间才具有is-A关系。
该原则称为Liskov Substitution Principle——里氏替换原则。
  相关解决方案