2013-02-20 55 views
0

在一次採訪中,我被問到了下面的問題。如何同時訪問不同類的兩種方法?

假設有A類的方法drawShape(),還有另一個B類的方法drawSquare()

現在有,在我的C類我想這兩種方法最終延伸A和B.

現在第三個C類。

如何同時獲得這兩種方法?

+2

你應該真的開始閱讀關於Java是如何工作的。 – Achrome 2013-02-20 13:28:57

+3

*「現在有第三個類名爲C,它擴展了類A和B」*在Java中不可能。 Java不支持多重繼承。 – 2013-02-20 13:29:20

回答

1

你不延伸,因爲Java不suppert,而是可以使用界面:

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

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

在Java中,你不能擴展到多個類別。

如果你願意,你可以擴展B到A,然後擴展C到B,這樣你應該能夠訪問這兩種方法

1

Java不支持多重繼承類:一類只能繼承一個類等。

相反,你可以使用組合物(有你的類中的類)達到什麼有人問:

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

    ... 
} 

現在C可以通過做a.drawShape()b.drawSquare()訪問這兩種方法。