-1

一部のコレクション クラスが抽象クラスを拡張し、同時に List、Set などのコレクション インターフェイスに対応するインターフェイスを実装する理由が知りたいです。抽象クラスを拡張するだけではどうですか。Cloneble、Serializable などの機能を追加するための他のインターフェイスの実装は理解できますが、抽象クラスを拡張し、既に抽象クラスが実装しているインターフェイスも実装しています。私が見逃しているいくつかの設計原則があると思います。誰かがこの設計理由を詳しく説明できますか?

4

2 に答える 2

3

コレクション インターフェイスは、コレクションが実際にどのような種類のコレクションであるかを知らなくてもコレクションを使用できるようにするために存在しますたとえコレクションが抽象クラスを拡張していなくてもです。
たとえば、並行コレクションのほとんどは、抽象基本クラスを拡張しません。

抽象クラスは、ほとんどの実装に共通の基本機能を提供するために存在します。

于 2013-05-19T13:26:05.480 に答える
0

Collectionインターフェイスはコントラクトを定義し、AbstractCollection機能の「スケルトン実装」を含みます。

詳細については、Joshua Bloch の「 Effective Java - episode 18 」で最もよく説明されている「契約による設計」と骨組みの実装を理解することをお勧めします。

于 2013-05-19T13:29:36.793 に答える