2016-08-20 2 views
-5

編集:私が実際に尋ねるのは、抽象クラス、ハッシュクラスなどがマップ、セット、コレクションなどのインターフェイスを実装する必要がある理由です。これらの違い(abstractmap、hashmap、map)は何ですか?そして、なぜそれらがインタフェースである必要がありますか?JavaのCollectionとAbstractCollectionの違いは何ですか?

+0

'AbstractCollection'はほとんどのメソッドを実装しています。 'Collection'はインターフェースではありません。あなたは実際に 'AbstractCollection'だけでなく、なぜインターフェイスがあるのか​​を尋ねようとしていますか?それはまったく異なる質問です。 – Andreas

答えて

0

違いは、Javaインターフェイスのメソッドは暗黙的に抽象的であり、実装を持つことができません。 Java抽象クラスは、デフォルトの動作を実装するインスタンスメソッドを持つことができます。

Javaインターフェイスで宣言された別の変数は、デフォルトではfinalです。抽象クラスは非最終変数を含むことがあります。

+0

インタフェースメソッドには、Java 8以降のデフォルト実装を使用できます。https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html –

0

コレクションを実装する場合は、Collectionインターフェイス全体を実装するよりも、既にCollectionのメソッドが実装されているAbstractCollectionを実装する方が簡単です。 documentation of AbstractCollectionから

このクラスは、このインタフェースを実装するのに必要な労力を最小限に抑えるために、Collectionインタフェースのスケルトン実装を提供します。

関連する問題