2010-02-28 140 views
0

如果我有使用三類使用抽象類和接口

class A 

class B extends A 

class C extends A 

將抽象類和接口給我任何類型的錯誤或影響我執行程序的方式嗎?

+8

這取決於。你想做什麼? – SLaks 2010-02-28 18:29:41

+8

你問這個問題的方式太模糊了,我幾乎認爲它不是一個真正的問題。閱讀子類,接口和抽象類,並嘗試提出更具體的內容。 – MatrixFrog 2010-02-28 18:31:51

回答

4

除非需要共享實現,否則歡迎界面。

如果您需要共享實現,請仔細考慮抽象類是否是實現此目標的正確方法。

繼承是一個強大的工具,但可以很容易地創建一個不可維護的混亂(我在這裏一直有罪)。

但是要回答你的問題 - 不,在這個設置中沒有任何內容會導致「錯誤」。

1

你應該通常喜歡接口,只要你可以。如果你使用了類的話,那麼Java缺乏多重繼承會迅速成爲一個限制因素。

+0

Java允許接口的多重繼承,並且如果您使用AspectJ,則可以將方法的實現直接添加到接口。放在一起,你會得到:多個實現繼承。 – whiskeysierra 2010-02-28 23:37:00

1

是的。抽象類交換一個更短的重用實現方法,以便爲同一個對象提供多個接口。

除非你玩高爾夫球,否則選擇接口的靈活性通常是更好的選擇。