2011-05-07 62 views
0

實現界面而不是繼承.NET中的類有什麼好處?但多重繼承除外執行界面優於繼承類

+1

可能重複的[接口或抽象類?](http://stackoverflow.com/questions/1165332/interface-or-abstract-class) – 2011-05-07 16:23:53

+0

我同意邁克爾,這似乎是重複的。 OP應該參考那些答案來獲得指導,或者應該修改這個問題以產生實質性差異。 – 2011-05-07 16:47:40

+0

[Interface vs Base class]的可能重複(http://stackoverflow.com/questions/56867/interface-vs-base-class) – nawfal 2014-07-07 09:49:50

回答

2

單一繼承語言中接口的一個關鍵優勢是接口可以在不共享通用根的類上實現。

另一點是接口允許所謂的接口繼承而不是實現繼承。這有時是非常有用的,但真正的多重繼承方面缺乏實現多繼承的C#的關鍵弱點,爪哇等

5
  • .NET中的類可以實現多個interfaces,但僅從一個基類派生。

  • 可以實現一個接口explicitly

2

沒有「好處」,它只是不同的東西。實現接口說「我可以做點什麼」,而嵌入類表示「我是某事」。

+1

這是一個相當迷人的視圖。這就好像說編譯語言並不比編寫機器代碼更實際,因爲它們不同。當你必須在兩種不同的東西之間進行選擇來解決同樣的問題時,比較就會變得有意義 – 2011-05-07 16:37:53

0

人們可以想到實現多個接口,等同於從多個純抽象基類繼承的支持者。因此,在某種程度上,概念上的差異只能歸結爲在實現接口時,您不會免費獲得實現。