文章詳情頁
java - 如圖代碼,Collection 類中的iterator()是抽象方法,為什么可以調用?
瀏覽:127日期: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
排行榜
