日期:2014-05-20  浏览次数:20634 次

子类方法为什么不能低于超类方法的可见性
如题

------解决方案--------------------
多态原因,比如: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——里氏替换原则。