java - Java 中带有附加方法的子类

标签 java class subclass superclass

我在 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/

相关文章:

java - log4j2异步记录器是否真的将数据插入MySQL?

java - 从给定的数字字符串生成 16 位唯一的十六进制值

inheritance - Golang : when typecasting child struct to parent struct, 子结构信息丢失?

java - cucumber java 。我在尝试构建 boolean 方法时遇到问题

python - 是否可以直接将对象字段初始化为 __init__ 关键字参数?

class - => 在 Scala 类定义的开头是什么意思?

c++ - 使用 () 创建类的实例

c# - 无法访问 C# 中父类(super class)的属性

c++ - 如何将类的实例更改为子类的实例

java - Hazelcast map 同步