3
A
回答
4
接口允許你表達一個類型做什麼,而不必擔心它是如何做。實施可以隨意更改而不影響客戶。
抽象類接口等,除了它們允許你爲它存在的合理方法默認行爲。
使用和實例依賴於語言。如果您瞭解Java,則可以在整個API中找到接口和抽象類的示例。 java.util集合有很多。
+0
由於JDK 8可以向接口添加默認行爲。抽象類仍然不同,因爲它們可以有狀態。接口只能聲明靜態變量。 – duffymo 2017-11-22 12:53:16
3
當你想指定一組常見的方法和屬性的實現/所有類繼承他們有,暴露行爲,都應該提供他們是有用的。
特別是關於接口,一個類可以實現多個接口,所以這個就派上用場了,當你想這樣的事實,它的情況下,必須具有多種類型的行爲進行建模。
另外,正如Wikipedia所說的,接口是一種類型定義:在函數或方法調用中可以將對象作爲參數傳遞的任何地方,要交換的對象的類型可以用接口定義這允許稍後使用交換不同對象類型的相同函數:因此,這樣的代碼變得更通用並且可重用。
相關問題
- 1. 爲什麼在接口爲什麼不能在抽象類
- 2. 在這裏使用什麼,抽象類或接口?
- 3. 專用接口或抽象類:什麼是我的選擇
- 4. 爲什麼我們有抽象類時需要接口?
- 5. 爲什麼使用接口而不是抽象類與DI?
- 6. 爲什麼C#接口方法未聲明爲抽象或虛擬?
- 7. 爲什麼使用抽象如果我們有接口
- 8. 爲什麼任何一種抽象都使用接口而不是抽象類?
- 9. 爲什麼使用抽象類
- 10. 爲什麼我們實現接口抽象類
- 11. 爲什麼HttpContext是一個抽象類而不是接口?
- 12. 爲什麼C#中存在抽象類和接口?
- 13. 爲什麼java.sql.Statement是一個接口而不是抽象類?
- 14. 抽象類或SoftDelete接口
- 15. 接口或抽象類
- 16. 什麼時候去接口,什麼時候去抽象類
- 17. 爲什麼我們要使用抽象類或方法,爲什麼不重寫超類方法呢?
- 18. C#中的抽象類和接口類有什麼不同?
- 19. 爲什麼[WCF]有接口
- 20. 狀態模式:爲什麼上下文類沒有實現或繼承狀態抽象接口/類?
- 21. 爲什麼需要抽象類?
- 22. 這是爲什麼抽象類在PHP
- 23. 何時使用抽象類或接口?
- 24. 抽象類和接口之間有什麼區別?
- 25. 抽象類與設計點的接口有什麼不同?
- 26. 爲什麼期望類,接口或枚舉?
- 27. 爲什麼接口變量總是靜態的,爲什麼不抽象類總是靜態的?
- 28. 爲什麼將doGet抽象爲processRequest?
- 29. 爲什麼在語法層面上區分接口類和抽象類?
- 30. 爲什麼我們不能在WCF中使用抽象類而不是接口?
http://stackoverflow.com/questions/761194/interface-vs-abstract-class-general-oo和可能的副本http://stackoverflow.com/questions/1474249/abstract-classes-vs-interfaces – mdma 2010-05-16 21:47:26
嘗試在Google中輸入問題並查看第一個百萬左右的結果。 – fearofawhackplanet 2010-05-16 21:53:29
一個字 - 多態! – nawfal 2014-07-07 09:51:49