簡體   English   中英

列表擴展集合為什么?

[英]List extends Collections why?

公共接口列表擴展集合

集合是一個接口,為什么 List 擴展它而不是實現?

在 Java 中:

  • 一個可以extends另一個
  • 一個可以implements一個或多個接口
  • 一個接口可以extends另一個接口

即,在具有“超級接口”的接口的上下文中,我們使用“擴展”而不是“實現”,因為接口從不實現任何東西。 它擴展了現有的合同。

interface視為行為列表。 Animal可以eat()move() 每只動物的做法都不一樣,但每一種動物都會這樣做。 所以一個interface列出了行為,一個class implements這些行為(定義了動物如何移動或進食)。 所以class Elephant implements Animal 現在可以擴展此行為列表 - 例如,狗可以吠叫。 這就是interface Dog extends Animal 你可以創建class Poodle implements Dog 本課程將解釋貴賓犬究竟是如何移動、進食和吠叫的。

另外一類可以擴展-這意味着你可以通過exdending它添加主類貴賓犬的行為或越權behavoiur MinaturePoodle延伸Poodle

總結:類可以擴展其他類或實現接口(行為)。 接口(行為)可以由其他接口擴展或由類實現(通過創建方法體)。 http://docs.oracle.com/javase/tutorial/java/IandI/nogrow.html

List是接口,接口沒有定義范圍(從 java 7 開始,jdk 8 提供了默認方法)。

Collection 的所有常見類型都被概括和總結為collection接口,這些接口后來專門用於不同的集合,如ListMapSet

collection List類型與Set & Map相同。 ArrayListList實現,它也是Collection類型。

來自文檔

List 接口對迭代器、add、remove、equals 和 hashCode 方法的契約進行了額外的規定,超出了 Collection 接口中指定的規定。 為方便起見,此處還包含了其他繼承方法的聲明

List 是接口,接口沒有定義范圍(從 java 7 開始,jdk 8 提供了默認方法)。

而 ArrayList,LinkedList 是一個類,類實現了接口。

基本層次結構是 List list = new ArrayList<>(); 這里 list 是接口,所以我們不能創建它的對象,但 ArrayList 是一個我們可以使用它的類。

同樣的原則適用於 set,queqe,deque。

MAP 也是一個界面,但它是獨立的。

這里 list extends collection , collection extends iterable 。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM