これは、完全に説明できないように見える oop のインターフェースに関する唯一の質問です。繰り返しになりますが、なぜ oop でクラスが複数のインターフェースを実装できるのでしょうか?
いくつかの例を提供できれば、それは素晴らしいことです。前もって感謝します。
これは、完全に説明できないように見える oop のインターフェースに関する唯一の質問です。繰り返しになりますが、なぜ oop でクラスが複数のインターフェースを実装できるのでしょうか?
いくつかの例を提供できれば、それは素晴らしいことです。前もって感謝します。
概念例
複数のインターフェースについて私が考える方法は、インターフェースは動詞または形容詞のようなものであり、クラスは主語のようなものです。
トラは走ることができるので、Tiger class
は を実装する可能性がありますRunnable Interface
。
トラは食べることができるので、5月にTiger class
実装されEatable Interface
ます。
クラスのインスタンスはさまざまな動作をする可能性があるため、対応するさまざまなインターフェイスを持つことができます。
現実的な例
java.util Class HashMap<K,V>
実装しますSerializable, Cloneable, Map<K,V>
すべてのインターフェースは Class HashMap の特性です。
インターフェイスは本質的に抽象的です(もちろん、定義によるものではありません)。したがって、すべてのメソッドは具象サブクラスで実装する必要があります。このようにして、死の致命的なダイヤモンドを回避し、それ自体が答えとなる方法で多重継承をサポートします複数のインターフェイスの実装が許可されます。
他にも多くの用途がありますが、上記の説明により、複数の実装の概念を制限する理由は他にありません....私の知る限りでは。
まず、Java は多重継承をサポートしていないため、2 つのクラスを同時に拡張することはできません。ただし、Java は複数のインターフェースの実装をサポートしています。Mingyu が示した例は、私には完璧に思えます。