1

我在一次采访中被问到一个问题,可以说有一个类 A 使用方法 drawShape(),而另一个类 B 使用方法 drawSquare()。现在有第三个 C 类。在我的 CI 类中,需要 A 类和 B 类的这两种方法。我如何同时获得它们?

为此,我提出了以下方法:Java 不支持多类继承:

Class.interface IA {
   void drawshape();
}

inerface IB {
   void drawsquare();
}

class A implements IA {
    ...
}

class B implements IB {
    ...
}

class C implements IA, IB {
   private A a;
   private B b;

   void drawshape() {
     a.drawshape()
   } 

   void drawsquare() {
     b. drawsquare()
   }
}

所示方法基于优先组合优于继承的原则。请让我知道这是否是正确的方法。这种模式也被称为策略模式,请告知它是正确的或我正在遵循的方法。伙计们对这种方法有任何更多的意见,请提出建议,任何帮助将不胜感激。

4

1 回答 1

2

是的,在这种情况下,组合可能是最好的方法。在某些情况下,您可能希望从一个类继承并在其他类上使用组合。

于 2013-02-20T15:13:58.713 回答