2012-04-05 17 views
3

私自身がLinkedListを実装しています。私はMyLinkedLlistを呼び出し、MyLinkedListの中にsize()iterator()しか入っていないクラスが実装されています。ほかに私がでLinkedListのためのすべての私の他の必要な機能1つの抽象クラスをした抽象クラスのプロトタイプは次のとおりです。独自のLinkedListの実装

public abstract class MyAbstractSequentialList implements List 

私は私の抽象クラス内equals()メソッドを実装する必要があるか、それはすでに私のために実装されている場合、私は疑問に思います私のためにListを継承していますか?

+0

私は "public abstract class MyAbstractSequentialList implements List"と書いています。eclipseはいくつかのメソッドを表示しますが、equals()は表示しません。 – cyo

+0

実際にコンパイラは、それが私に任されているので、equals()メソッドを実装する必要があるかどうかを教えてくれますか? – cyo

+0

私はequals()メソッドを実装していないときにエラーはありません。テストするために呼び出すときには動作しますが、結果はfalseになるfalseを返します。 – cyo

答えて

5

リストはインターフェイスです。したがって、デフォルトの実装はありません。必要に応じて実装することができます。 equalsをオーバーライドする場合は、ハッシュコードもオーバーライドする必要があります。

1

リストインターフェイスと等しい()任意のインターフェイスのすべてのメソッドが抽象的でなければならないのでリストに実装されていませんです。

したがって、抽象クラスにequals()メソッドを実装する必要があります。もしそうでなければ、抽象クラスを継承するサブクラスに実装する必要があります。あなたがあなた自身のLinkedListに実装したい場合は、あなたにもそのメソッドを実装する必要があり、その後実装している場合はインターフェイスとの契約があるためので、あなたがequals()を実装する手段を無効にする必要がありますので

1

Listはインターフェースです。

関連する問題