インターフェース間で複数の継承が可能であることを知っています、例えば:
public interface C extends A,B {...} //Where A, B and C are Interfaces
しかし、次のような複数のインターフェイスから通常のクラスを継承させることは可能ですか?
public class A implements C,D {...} //Where A is a Class and C and D are interfaces
Javaクラスは1つの親クラスのみを拡張できます。多重継承(extends
)は許可されません。ただし、インターフェイスはクラスではなく、クラス複数のインターフェースを実装できます。
親インターフェースは、implements
キーワードの後に、コンマ区切りリストで宣言されます。
結論として、yes、次のことが可能です。
public class A implements C,D {...}
これは、Javaで多重継承を実装する方法です
一言で-はい。実際、JDKの多くのクラスは複数のインターフェースを実装しています。たとえば、ArrayList
はList
、RandomAccess
、Cloneable
、およびSerializable
を実装します。
もちろん...ほとんどすべてのクラスはいくつかのインターフェースを実装しています。 Java Oracleのドキュメントの任意のページに、「すべての実装されたインターフェース」という名前のサブセクションがあります。
ここでは、Date
クラスの 例 です。
はい、可能です。これはキャッチです:Javaは多重継承をサポートしません。つまり、クラスは複数のクラスを拡張できません。ただし、クラスは複数のインターフェースを実装できます。
インターフェイスは他のインターフェイスを拡張できます。また、インターフェイスは他のインターフェイスを実装できません。クラスに関しては、他の1つのクラスを拡張し、任意の数のインターフェイスを実装できます。
class A extends B implements C,D{...}