java - 如图代码,Collection 类中的iterator()是抽象方法,为什么可以调用?
天蓬老师
天蓬老师 2017-04-18 10:47:56
0
3
742
        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()方法,为什么可以最后一步这样调用呢?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

répondre à tous(3)
小葫芦

ArrayList hérite de la classe AbstractList, et la classe AbstractList remplace la méthode List de l'interface iterator() :

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

Itr est la classe interne de AbstractList et implémente l'interface Iterator.

迷茫

N'y a-t-il pas une ArrayList ? ?

Peter_Zhu

Cet itérateur doit être la classe interne d'ArrayList. S'il ne peut pas être trouvé dans ArrayList, il doit être dans sa classe de base. Les itérateurs doivent être différents pour les différentes classes de collection.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal