0

我正在学习关于 Java 数据结构的课程,我们必须添加一个方法,

  private boolean contains(T anEntry, Node startNode)

到您可以在下面的代码中找到的 LList2.java,但是添加此方法会导致 Eclipse IDE 显示错误和警告。我能够通过添加函数来修复错误:

错误:

  The type LList2<T> must implement the inherited abstract method ListInterface<T>.contains(T)  LList.java

添加:

      public boolean contains(T anEntry) {
            return false;
    }

还更改公共布尔包含(T anEntry);公共到私人会导致很多错误。我不明白发生了什么以及为什么这解决了问题并允许我编译。在测试中,一切似乎都正常工作。谁能解释发生了什么,以及如何解决它,所以我不需要这个额外的方法?

我在这里将 3 个 java 源文件放在 PasteBin 中: LList2.java - http://pastebin.com/HnABCsj4 ListInterface.java - http://pastebin.com/yhTviUAH TestList2.java - http://pastebin.com/ 9EgTV2mB

4

2 回答 2

1

ListInterfacepublic boolean contains(T anEntry);你必须重写的方法。您只有public boolean contains2(T anEntry)public boolean contains(T anEntry, Node startNode)在您的LList2班级中,两者都不会覆盖接口方法。

所以你也需要实现这个方法。当您将方法更改为私有时,这也是错误,因为在接口中它被声明为公共。

顺便说一句,非常建议您为@Override所有覆盖接口方法的方法添加注释。这样你会看到 contains2 错误。

于 2013-03-14T08:15:45.063 回答
0

接口 ListInterface 中所有未实现的方法必须在子类中实现。编译器将抱怨任何缺少的实现。

于 2013-03-14T08:19:16.937 回答