文章詳情頁
java - 如圖代碼,Collection 類中的iterator()是抽象方法,為什么可以調(diào)用?
瀏覽:147日期: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()方法,為什么可以最后一步這樣調(diào)用呢?
問題解答
回答1:ArrayList繼承自AbstractList類, AbstractList類重寫了List接口的iterator()方法:
public Iterator<E> iterator() { return new Itr();}
其中Itr是AbstractList的內(nèi)部類,實(shí)現(xiàn)了Iterator接口。
回答2:ArrayList不是有嗎??
回答3:這個(gè)Iterator應(yīng)該是ArrayList的內(nèi)部類吧,如果ArrayList中找不到的話它的基類中應(yīng)該有,不同的集合類Iterator應(yīng)該也各不相同,你可以自己看看源碼。
標(biāo)簽:
java
排行榜

熱門標(biāo)簽