如何同时访问不同类的两种方法?

时间:2013-02-20 13:27:05

标签: java oop methods extends

在接受采访时,我被问到以下问题。

假设有一个方法drawShape()的A类,另一个方法有drawSquare()的B类。

现在有第三个C类,它同时扩展了A和B.

现在终于在我的班级C中我想要这两种方法。

如何同时获得这两种方法?

3 个答案:

答案 0 :(得分:1)

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

在Java中,您无法扩展到多个类。

如果你想要,可以将B扩展为A,然后将C扩展为B,这样你就可以访问这两种方法

答案 1 :(得分:1)

不要因为Java不支持而扩展,而是可以使用interface:

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()
   }
}

答案 2 :(得分:1)

Java不支持多个Class继承:Class只能扩展另一个Class。

相反,你可以使用Composition(在你的类中有类)来实现所要求的:

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

    ...
}

现在C可以通过a.drawShape()b.drawSquare()访问这两种方法。