黑马程序员技术交流社区

标题: 关于单继承和多实现的问题 [打印本页]

作者: amen0205    时间: 2013-3-4 23:02
标题: 关于单继承和多实现的问题
JAVA只能单继承的原因:若是多继承,当多个父类有同名函数时,调用不知道该调用哪一个,会发生错误。
                                  同时单继承有助于简化代码的复杂程度。
JAVA多实现的原因:接口就是用来扩展功能的,一个类要扩展的功能是多种多样的,当然要多继承。
                             但多继承时,多个实现的接口里是不允许出现同名函数的,就避免了多继承会出现的问题。
      
        那是否可以多继承但想接口一样不允许同名函数呢?  这样也不好,你无法保证写每个父类的时候函数名都不相同,若有相同功能的函数的名称是很容易相同的。会造成代码混乱的。而且代码的复杂度会大大增加,这样不好。   
         
         那不同接口的函数名就不会相同吗?   当然不是,因为接口是用来扩展功能的,不同功能的实现起得函数名往往是不同的,但也会有同名函数的产生,但在被类实现的时候若出现了同名情况是比较易修改的,而且接口都是抽象的没有函数主体。这样代码方面就会简化很多了。

         还有接口的多继承我的理解是   类单继承后,扩展的功能可以靠对接口的多实现来完成,但接口若是单继承了,那其他的功能就被限制了,不利于功能的实现。


我的这种理解方式OK吗 ?   你们是怎么理解的?

作者: 黑马_位志国    时间: 2013-3-5 08:26
单继承是为了实现主要方面的继承。
如果是多继承,使用者会根本不考虑实际场景情况,胡乱继承,反而违背OO精神,AOP就是解决其他次要方面的继承问题,AOP通过拦截和导引其他属性进入当前对象。

使用单继承,会让我们更加珍惜父类,不要随便使用继承,因为一个类继承了另外一个类,这个就可能丧失继承其他类的权力,如果随着业务变化,当前类找到了它真正的主类(通常是业务主类),这时系统就变得尴尬了,无法拓展了。






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2