A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© amen0205 中级黑马   /  2013-3-4 23:02  /  1110 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

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


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

评分

参与人数 1黑马币 +6 收起 理由
黄玉昆 + 6 赞一个!

查看全部评分

1 个回复

倒序浏览
单继承是为了实现主要方面的继承。
如果是多继承,使用者会根本不考虑实际场景情况,胡乱继承,反而违背OO精神,AOP就是解决其他次要方面的继承问题,AOP通过拦截和导引其他属性进入当前对象。

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

评分

参与人数 1黑马币 +3 收起 理由
黄玉昆 + 3 淡定

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马