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;
    }

public boolean contains(T anEntry); も変更します。public から private にすると、多くのエラーが発生します。何が起こっているのか、なぜこれで問題が解決し、コンパイルできるようになったのかわかりません。テストでは、すべてが正しく機能しているようです。この余分な方法が必要ないように、何が起こっているのか、それを修正する方法を誰かが説明できますか?

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います。どちらもインターフェースメソッドをオーバーライドしません。

したがって、このメソッドも実装する必要があります。これは、インターフェイスで public と宣言されているため、メソッドを private に変更した場合にもエラーになります。

ところで、@Overrideインターフェイス メソッドをオーバーライドするすべてのメソッドに注釈を追加することを強くお勧めします。このようにして、contains2 エラーが表示されます。

于 2013-03-14T08:15:45.063 に答える
0

インターフェイス ListInterface に実装されていないすべてのメソッドは、サブクラスに実装する必要があります。コンパイラは、欠落している実装について文句を言います。

于 2013-03-14T08:19:16.937 に答える