java, c sharp 的多继承居然是这么实现,郁闷了我很久的问题。
class A
{
public void methodA(){};
}
class B
{
public void methodB(){};
}
如果class C 想从 A和B上继承。
此处不讨论菱形继承给多继承带来的问题。
如果 C和A、B的关系是 C is A并且 C is B。
并且关心A、B内已经实现方法的代码复用。
interface IA
{
void methodA();
}
interface IB
{
void methodB();
}
class C 实现 IA, IB
{
A a = new A();
B b = new B();
public void methodA()
{
return a.methodA();
}
public void methodB()
{
return b.methodB();
}
}
用has关系变相实现is的关系。我勉强接受。
C++这把双刃剑,爱她就得爱她的全部。
达人有更好的见解,望赐教。