众所周知,java是不支持多继承的,假设有类A,B,C  可以用B extends A, C extends B 来实现C同时继承A和B。不过今天闲来无事,突然想到了一个很蛋疼的问题:   如果同样是三个类A,B,C  同样需要C同时继承A和B,但类A和类B之间不能直接发生继承关系,即:不允许B extends A,那有没有其他方法可以达到同样的效果?(注:只要不使用B extends A,其他任何手段都可以,包括自己新建类、接口等)

解决方案 »

  1.   

    定义一个接口D,在接口中添加一个成员变量A和A中的所有方法,让C在继承B的时候,实现D接口,在实现的D的方法中,通过D的成员A的对象调用A的方法。
      

  2.   

    另建新类,持有AB对象的引用,c类继承此新类…………
    此方法可以把?
      

  3.   

    C继承B,并定义一个A成员变量,同时定义A的所有方法,方法体内部直接调用A成员的相应方法
      

  4.   

    你敢不敢把A和B中公用的部分写到父类中呢?这样的话还需要多次继承吗?
    就算不可以,那也不必要多次继承,你只需要在扩展的时候给A类中多加个接口,不是一样可以达到同样的效果?你果然是蛋疼!没事去想这样的问题······这就好像一群人在讨论1+1用加减乘除哪个算法来算才好·····