java - 如图代码,Collection 类中的iterator()是抽象方法,为什么可以调用?
本文介绍了java - 如图代码,Collection 类中的iterator()是抽象方法,为什么可以调用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
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()方法,为什么可以最后一步这样调用呢?
解决方案
ArrayList
继承自AbstractList
类, AbstractList
类重写了List
接口的iterator()
方法:
public Iterator<E> iterator() {
return new Itr();
}
其中Itr
是AbstractList
的内部类,实现了Iterator
接口。
这篇关于java - 如图代码,Collection 类中的iterator()是抽象方法,为什么可以调用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文