您的位置:首頁技術文章
文章詳情頁

java - 如圖代碼,Collection 類中的iterator()是抽象方法,為什么可以調用?

瀏覽:165日期:2024-02-08 14:01:46

問題描述

Collection c1 =new ArrayList();c1.add('hello');c1.add(1);Collection c2 =new ArrayList();c2.add(new Student() );c2.addAll(c1);c2.add('我');Iterator it = c2.iterator();

Collection 與List 還有ArrayList都沒有重寫iterator()方法,為什么可以最后一步這樣調用呢?

問題解答

回答1:

ArrayList繼承自AbstractList類, AbstractList類重寫了List接口的iterator()方法:

public Iterator<E> iterator() { return new Itr();}

其中Itr是AbstractList的內部類,實現了Iterator接口。

回答2:

ArrayList不是有嗎??

回答3:

這個Iterator應該是ArrayList的內部類吧,如果ArrayList中找不到的話它的基類中應該有,不同的集合類Iterator應該也各不相同,你可以自己看看源碼。

標簽: java
国产综合久久一区二区三区