我懷疑是用的方法和接口實現一個簡單的類之間。不是抽象類。爲什麼我們不能創建一個List類,給所有的方法實現並使Array List或Linked List擴展它。不是方法的實現相同。爲什麼列表中選擇接口而不是類
0
A
回答
7
不,實現是不一樣的。鏈接列表包含雙向鏈接節點的集合,並針對快速插入/移除進行了優化。一個數組列表由一個引用數組支持,並針對隨機訪問進行了優化,但隨着元素的添加和刪除,效率會降低。
定義List
作爲界面允許呼叫者無關應用的內部細節基於列表的語義。
1
在Java中,多繼承是不可能的。所以如果一個班級extends
其他班級,它不能擴展任何其他的。而實施interface
是沒有限制的。您可以使用多個接口與一個類別implement
。
相關問題
- 1. 爲什麼HttpContext是一個抽象類而不是接口?
- 2. 爲什麼java.sql.Statement是一個接口而不是抽象類?
- 3. 爲什麼在DefinitelyTyped`http.IncomingMessage`定義爲接口,而不是類?
- 4. 爲什麼使用接口而不是抽象類與DI?
- 5. 爲什麼異常是一個類而不是java中的接口?
- 6. 爲什麼我們不能在WCF中使用抽象類而不是接口?
- 7. 爲什麼不能使用實現類型的接口列表?
- 8. 專用接口或抽象類:什麼是我的選擇
- 9. 爲什麼列表中的表格是defs而不是vals?
- 10. 爲什麼在Laravel 5中注入接口而不是具體類。*?
- 11. 爲什麼我可以在NSOpenPanel中選擇別名而不是符號鏈接?
- 12. Ems轉換爲像素 - 爲什麼選擇62.5%而不是6.25%?
- 13. 爲什麼.NET ObservableCollection <T>實現爲類而不是接口?
- 14. 爲什麼UtteranceProgressListener不是一個接口?
- 15. 爲什麼不爲子類生成接口表?
- 16. [ERLANG]:爲什麼在列表而不是列表中回答列表?
- 17. 爲什麼列出[T]而不是列表[Int]? T是什麼意思?
- 18. 爲什麼在接口爲什麼不能在抽象類
- 19. 從派生的接口的列表中選擇類
- 20. 爲什麼選擇SimpleModal而不是jQuery UI對話框?
- 21. 爲什麼選擇SilverLight 4.0而不是SilverLight 3.0?
- 22. 爲什麼選擇「分享一切」而不是「分享一切」?
- 23. 爲什麼選擇SCOPE_IDENTITY()返回小數而不是整數?
- 24. 爲什麼選擇MySQL而不是其他Sql?
- 25. 爲什麼選擇顯示屏顯示值而不是標籤?
- 26. 爲什麼jboss選擇infinispan緩存而不是Ehcache
- 27. 爲什麼編譯器選擇const方法而不是非const?
- 28. 爲什麼Safari會選擇灰色而不是白色
- 29. 爲什麼選擇static_cast而不是隱式轉換鏈?
- 30. 爲什麼任何一種抽象都使用接口而不是抽象類?
其他列表實現可以此後再也沒有'extend'別的 – QBrute
@QBrute:我知道這似乎是顯而易見的,但是這是一個答案,而不是評論。 –
「不是抽象類」,那麼你需要爲所有方法提供實現。你會使用哪種實現?也許像ArrayList那樣由數組備份。但在那種情況下,你將如何創建其他列表像LinkedList?你需要擴展這個'List'(真正的ArrayList),但是你也會繼承所有那些冗餘的東西,比如數組持有數據的字段。列表界面更直觀。 – Pshemo