首页 > 编程语言 > 详细

Java继承的缺点

时间:2018-09-02 21:29:21      阅读:204      评论:0      收藏:0      [点我收藏+]

转载自:https://www.cnblogs.com/xz816111/archive/2018/05/24/9080173.html

JAVA中使用到继承就会有两个无法回避的缺点:

1.打破了封装性,子类依赖于超类的实现细节,和超类耦合。

2.超类更新后可能会导致错误。

继承打破了封装性

问题的根源

将这种情况抽象一下,可以发现出错是因为超类的可覆盖的方法存在自用性(即超类里可覆盖的方法调用了别的可覆盖的方法),这时候如果子类覆盖了其中的一些方法,就可能导致错误。

技术分享图片

比如上图这种情况,Father类里有可覆盖的方法A和方法B,并且A调用了B。子类Son重写了方法B,这时候如果子类调用继承来的方法A,那么方法A调用的就不再是Father.B(),而是子类中的方法Son.B()。如果程序的正确性依赖于Father.B()中的一些操作,而Son.B()重写了这些操作,那么就很可能导致错误产生。

关键在于,子类的写法很可能从表面上看来没有问题,但是却会出错,这就迫使开发者去了解超类的实现细节,从而打破了面向对象的封装性,因为封装性是要求隐藏实现细节的。更危险的是,错误不一定能轻易地被测出来,如果开发者不了解超类的实现细节就进行重写,那么可能就埋下了隐患。

 

Java继承的缺点

原文:https://www.cnblogs.com/pomodoro/p/9575175.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!