別のインターフェースを拡張するインターフェースをいつ使用できるか知りたいです。実用的な例とそれをいつ使用するかを知りたいです。
3 に答える
サブインターフェースがスーパーインターフェースが提供するすべてを提供し、他の重要なことを行う場合、インターフェースを拡張します。たとえば、 をSortedMap<K,V>
実装Map<K,V>
します。これは、ソートされたマップは、マップのすべての操作をサポートするマップであり、さらにソートされたマップにのみ適用されるいくつかの操作をサポートするためです。
これはクラス間の継承に似ていますが、複数の実装が可能です。たとえばSortedMap
、ツリーではなく、ソートされたキーのリストと値の並列配列として a を実装できます。これにより、ユーザーは、残りのコードを変更することなく、より高速または優れた実装に切り替えることができます。つまり、インターフェイス間の継承により、インターフェイスへのプログラミングの利点を維持できます。
のようなインターフェースを見てjava.util.Collection
、java.util.Set
これがどのように行われるか、および契約をどのように強化できるかを確認してください。
アプリケーションで多重継承を使用する場合は、1つのインターフェイスが他のインターフェイスを拡張する必要があります。
アプリケーションを並行して開発するには、新しく発見された要件を可能な限り簡単に既存のコードに組み込むことができるようにコードを作成する必要があります。したがって、インターフェースを実装する場合、具体的なクラス名は特定の実装にロックされ、ダウンザラインの変更を不必要に困難にします。したがって、インターフェイスを拡張します。