我在 Java 中的子类方面遇到问题。我有以下类(class):
MainIterator implements Iterator{
//... Methods from the interface Iterator
public void foo(){
//Do something...
}
}
在我的主课中,我调用:
Iterator i = new MainIterator();
i.foo();
这不起作用,因为 Iterator 没有实现函数 foo()。如果没有 i
的类型转换,如何才能使其正常工作? i
必须来自 Iterator 类型。
最佳答案
MainIterator i = new MainIterator();
Java 编译器只允许调用属于变量声明类型的方法。如果您使用
Iterator i = new MainIterator();
您正在告诉编译器:我创建了一个 MainIterator 类型的 Iterator 实例,但您不需要在代码的其余部分中了解这一点。只需将此对象视为 Iterator 的实例即可。并且 Iterator 没有任何 foo() 方法。
关于java - Java 中带有附加方法的子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20133782/