在一次採訪中,我被問到了下面的問題。如何同時訪問不同類的兩種方法?
假設有A類的方法drawShape()
,還有另一個B類的方法drawSquare()
。
現在有,在我的C類我想這兩種方法最終延伸A和B.
現在第三個C類。
如何同時獲得這兩種方法?
在一次採訪中,我被問到了下面的問題。如何同時訪問不同類的兩種方法?
假設有A類的方法drawShape()
,還有另一個B類的方法drawSquare()
。
現在有,在我的C類我想這兩種方法最終延伸A和B.
現在第三個C類。
如何同時獲得這兩種方法?
你不延伸,因爲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()
}
}
Now there is a third class C that extends both A and B
在Java中,你不能擴展到多個類別。
如果你願意,你可以擴展B到A,然後擴展C到B,這樣你應該能夠訪問這兩種方法
Java不支持多重繼承類:一類只能繼承一個類等。
相反,你可以使用組合物(有你的類中的類)達到什麼有人問:
Class C {
A a = new A();
B b = new B();
...
}
現在C
可以通過做a.drawShape()
或b.drawSquare()
訪問這兩種方法。
你應該真的開始閱讀關於Java是如何工作的。 – Achrome 2013-02-20 13:28:57
*「現在有第三個類名爲C,它擴展了類A和B」*在Java中不可能。 Java不支持多重繼承。 – 2013-02-20 13:29:20