0

インタビューで私は以下の質問をされました。

メソッドを持つクラスAがあり、メソッドdrawShape()を持つ別のクラスBがあるとしdrawSquare()ます。

ここで、AとBの両方を拡張する3番目のクラスCがあります。

最後に、私のクラスのCIでは、これらの両方のメソッドが必要です。

これらの両方のメソッドを同時に取得するにはどうすればよいですか?

4

3 に答える 3

1

Now there is a third class C that extends both A and B

Javaでは、複数のクラスに拡張することはできません。

必要に応じて、BをAに拡張してから、CをBに拡張できます。このようにして、両方の方法にアクセスできるようになります。

于 2013-02-20T13:29:28.883 に答える
1

Javaはサポートされていないため、拡張しないでください。代わりに、インターフェイスを使用できます。

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()
   }
}
于 2013-02-20T13:34:44.900 に答える
1

Javaは複数のクラス継承をサポートしていません。クラスは他の1つのクラスのみを拡張できます。

代わりに、Composition(クラス内にクラスがある)を使用して、求められたことを達成できます。

Class C {
    A a = new A();
    B b = new B();

    ...
}

これで、またはCを実行していずれかの方法にアクセスできます。a.drawShape()b.drawSquare()

于 2013-02-20T13:38:32.680 に答える