为了账号安全,请及时绑定邮箱和手机立即绑定

如图代码,Collection 类中的iterator()是抽象方法,为什么可以调用?

如图代码,Collection 类中的iterator()是抽象方法,为什么可以调用?

慕雪6442864 2019-02-22 09:27:06
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()方法,为什么可以最后一步这样调用呢?
查看完整描述

3 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

ArrayList继承自AbstractList类, AbstractList类重写了List接口的iterator()方法:

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

其中ItrAbstractList的内部类,实现了Iterator接口。

查看完整回答
反对 回复 2019-03-01
?
函数式编程

TA贡献1807条经验 获得超9个赞

ArrayList不是有吗??

查看完整回答
反对 回复 2019-03-01
?
慕的地10843

TA贡献1785条经验 获得超8个赞

这个Iterator应该是ArrayList的内部类吧,如果ArrayList中找不到的话它的基类中应该有,不同的集合类Iterator应该也各不相同,你可以自己看看源码。

查看完整回答
反对 回复 2019-03-01
  • 3 回答
  • 0 关注
  • 604 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信