MainIterator i = new MainIterator();
Java编译器仅允许调用属于 声明 的变量类型的方法。如果您使用
Iterator i = new MainIterator();
您正在告诉编译器: _我创建了一个Iterator实例,该实例的类型为MainIterator,但是您无需在其余的代码中知道这一点。
只需将此对象视为Iterator的实例即可。_而且Iterator没有任何foo()方法。

MainIterator i = new MainIterator();
Java编译器仅允许调用属于 声明 的变量类型的方法。如果您使用
Iterator i = new MainIterator();
您正在告诉编译器: _我创建了一个Iterator实例,该实例的类型为MainIterator,但是您无需在其余的代码中知道这一点。
只需将此对象视为Iterator的实例即可。_而且Iterator没有任何foo()方法。