黑马程序员技术交流社区
标题:
关于单继承和多实现的问题
[打印本页]
作者:
amen0205
时间:
2013-3-4 23:02
标题:
关于单继承和多实现的问题
JAVA只能单继承的原因:若是多继承,当多个父类有同名函数时,调用不知道该调用哪一个,会发生错误。
同时单继承有助于简化代码的复杂程度。
JAVA多实现的原因:接口就是用来扩展功能的,一个类要扩展的功能是多种多样的,当然要多继承。
但多继承时,多个实现的接口里是不允许出现同名函数的,就避免了多继承会出现的问题。
那是否可以多继承但想接口一样不允许同名函数呢? 这样也不好,你无法保证写每个父类的时候函数名都不相同,若有相同功能的函数的名称是很容易相同的。会造成代码混乱的。而且代码的复杂度会大大增加,这样不好。
那不同接口的函数名就不会相同吗? 当然不是,因为接口是用来扩展功能的,不同功能的实现起得函数名往往是不同的,但也会有同名函数的产生,但在被类实现的时候若出现了同名情况是比较易修改的,而且接口都是抽象的没有函数主体。这样代码方面就会简化很多了。
还有接口的多继承我的理解是 类单继承后,扩展的功能可以靠对接口的多实现来完成,但接口若是单继承了,那其他的功能就被限制了,不利于功能的实现。
我的这种理解方式OK吗 ? 你们是怎么理解的?
作者:
黑马_位志国
时间:
2013-3-5 08:26
单继承是为了实现主要方面的继承。
如果是多继承,使用者会根本不考虑实际场景情况,胡乱继承,反而违背OO精神,AOP就是解决其他次要方面的继承问题,AOP通过拦截和导引其他属性进入当前对象。
使用单继承,会让我们更加珍惜父类,不要随便使用继承,因为一个类继承了另外一个类,这个就可能丧失继承其他类的权力,如果随着业务变化,当前类找到了它真正的主类(通常是业务主类),这时系统就变得尴尬了,无法拓展了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2