日期:2014-05-20  浏览次数:20918 次

JAVA中的多继承问题
众所周知,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,其他任何手段都可以,包括自己新建类、接口等)

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

------解决方案--------------------
另建新类,持有AB对象的引用,c类继承此新类…………
此方法可以把?
------解决方案--------------------
C继承B,并定义一个A成员变量,同时定义A的所有方法,方法体内部直接调用A成员的相应方法
------解决方案--------------------
你敢不敢把A和B中公用的部分写到父类中呢?这样的话还需要多次继承吗?
就算不可以,那也不必要多次继承,你只需要在扩展的时候给A类中多加个接口,不是一样可以达到同样的效果?

你果然是蛋疼!没事去想这样的问题······

这就好像一群人在讨论1+1用加减乘除哪个算法来算才好·····
------解决方案--------------------
设置为他的私有属性
------解决方案--------------------
添加一个借口吧,这样就可以实现了!



LZ真闲,羡慕!!!
------解决方案--------------------
这个果断用接口