成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:178日期: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