在Java中声明一个迭代器

Sim*_*ley 6 java iterator interface

我对Java中的迭代器非常困惑.

该教程正在阅读中说:

在Java编程语言中,接口是一种类似于类的引用类型,它只能包含常量,方法签名和嵌套类型.没有方法体.接口无法实例化 - 它们只能由类实现或由其他接口扩展.扩展将在本课程后面讨论.

然后我看到了另一个教程:

Iterator<String> flavoursIter = aFlavours.iterator();
Run Code Online (Sandbox Code Playgroud)

我知道aFlavours已经继承了返回迭代器接口的迭代器函数.我只是不明白这一行实际发生了什么.我以为你无法实例化?

也许我没有意义,但请告诉我,我正在离开赛道.

Chr*_*ris 7

通过说它无法实例化,它们的意思是你做不到Iterator i = new Iterator();.由于Iterator是一个接口,它本身没有实现.当你这样做

Iterator flavoursIter = aFlavours.iterator();
Run Code Online (Sandbox Code Playgroud)

你正在做的是在aFlavours对象上调用一个名为"iterator"的方法,该方法返回一个实现Iterator接口的类的实例(你真的不知道它究竟是什么类,你也不应该关心,所有你都是'保证是它支持Iterator接口中定义的所有方法.