【发布时间】:2021-02-01 12:19:59
【问题描述】:
所以仅仅几天我就接触了集合类并偶然发现了一个叫做“迭代器”的东西。经过几次窥探和戳,我再次偶然发现了 docs.oracle.org,在那里我了解到 Iterator 实际上是一个接口,我们仍然创建它的对象。
Iterator itr = myPrecious.iterator();
“itr”不是对象吗?还是我错过了什么?做接口的对象不是不可能吗?
那是什么特别的东西
myPrecious.iterator();??
不是吗
new Iterator(); 实例化一个对象??
编辑:忘了提到 Javas 是我的第一门编程语言,所以请原谅我的愚蠢。
【问题讨论】:
-
这是非常基础的java。一个类可以实现一个接口,然后这个类就可以被实例化!我建议你拿起一本关于 Java 的好书,阅读整个接口章节。
-
如果一个类实现了一个接口,您可以创建该类的实例并通过接口引用它们:
MyInterface instance = new ClassThatImplementsMyInterface();。此外,方法具有返回类型,因此您可以使用返回适当类型的对象的方法来实例化它:MyInterface instance = anotherObject.methodThatReturnsSomethingCompatibleWithMyInterface(); -
将接口视为“看起来像”规范,将类视为“是”规范。还请考虑,如果您无法创建实现接口的对象,那么接口将没有用处,因此它们将不存在。但它们确实存在,因此您必须能够实例化实现接口的对象。相关:Liskov Substitution Principle
标签: java collections iterator