为什么?
给个理由先?

解决方案 »

  1.   

    记得有人说过,java是c++--, 多重继承由于其复杂性属于被减掉的部分. 符合java语言简单的特点.用Interface.
      

  2.   

    to refresher(第一信仰) 
       我觉得你给的原因好像有点可笑, C++也难道因为你说的原因就不支持多重继承了吗?
       关于如何实现你说的问题,特别是"菱形继承",你可以看看相关c++的书(如Bruce Eckel的)多重继承(MI)功能强大, 但编译实现比较复杂, 使用也比较复杂.而且会带来二义性.
    C++是目前唯一支持MI的OO语言(当然苛刻点讲,不完全是OO)基于以上原因,将"简单性"作为其主要特点的Java这个后来者当然抛弃MI了.
    虽然Java的interface能模拟MI,但还达不到c++中MI的能力.当然, 上面只是个人理解, 有问题请指正 
      

  3.   

    要说为什么,就是因为Interface完全可以完成多重继承所能完成的功能,而且,Interface还可以避免因为多重继承而带来的二义性等多余的复杂问题。你可以通过实现多个接口来实现多重继承,而且接口之间也可以继承。多重继承在软件工程中也不被推荐,所以,连C#也引进了接口,而抛弃了多重继承。
      

  4.   

    //因为Interface完全可以完成多重继承所能完成的功能
    "完全"这个词恐怕有点大. 
    为什么接口是实现而不是继承,因为需要你去实现. 
    而继承则是继承了就"与生俱来"
      

  5.   

    像 kingfish(POWER OF JAVA)  说的,这样做实现简单,
    要不然就得用运行时来确定了(后期绑定)
    还有一点单根继承更易于实现虚拟机,特别是内存的回收(这个就不用自己过多考虑内存溢出了),
    对于一个对象,它的根总是Object,而如果是多重继承的话,不会只有单根的。
      

  6.   

    前面的高人都说的差不多了哦,我就来个新意一点的啊^_^
    JAVA设计者不希望在这个社会(JAVA)中有杂交的事情.虽然杂交可能会继承多个优良的特性,但同时可能会大大加大家族的遗传病的扩散.而且在赡养和抚养等等问题上都是个问题啊.^_^实现就不一样了哦,认干爹干妈的,有遗传病病不会给它传染,有什么好的优点可以努力地去学习实现,有利于进化论哦. 我闪~~~ 呵呵
      

  7.   

    我觉得主要还是二义性的问题,java语言当时的设计宗旨就是简单,所以就把多重继承砍掉了
      

  8.   

    避免2异性 interface可以实现你想要的
      

  9.   

    2异性就是集成class图形是菱型
      

  10.   

    照sun的讲法是避免c++那样管理多重继承的层次关系而带来的复杂性,换成用接口来实现多重继承的大部分功能。
      

  11.   

    回去看一本书  是sjcp考试用的   上面说过