小编典典

Java中带有附加方法的子类

java

我在Java中有一个子类问题。我有以下课程:

MainIterator implements Iterator{
   //... Methods from the interface Iterator

   public void foo(){
      //Do something...
   }
}

在我的主班上,我打电话给:

Iterator i = new MainIterator();
i.foo();

这是行不通的,因为Iterator没有实现 foo() 函数。没有类型转换,i怎么可能使它工作?i必须来自Iterator类型。


阅读 257

收藏
2020-11-30

共1个答案

小编典典

MainIterator i = new MainIterator();

Java编译器仅允许调用属于 声明 的变量类型的方法。如果您使用

Iterator i = new MainIterator();

您正在告诉编译器: _我创建了一个Iterator实例,该实例的类型为MainIterator,但是您无需在其余的代码中知道这一点。
只需将此对象视为Iterator的实例即可。_而且Iterator没有任何foo()方法。

2020-11-30