web-dev-qa-db-ja.com

通常のクラスは複数のインターフェースを実装できますか?

インターフェース間で複数の継承が可能であることを知っています、例えば:

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
26
Joshua

Javaクラスは1つの親クラスのみを拡張できます。多重継承(extends)は許可されません。ただし、インターフェイスはクラスではなく、クラス複数のインターフェースを実装できます。

親インターフェースは、implementsキーワードの後に​​、コンマ区切りリストで宣言されます。

結論として、yes、次のことが可能です。

public class A implements C,D {...}
58
Christian

これは、Javaで多重継承を実装する方法です

8
java seeker

一言で-はい。実際、JDKの多くのクラスは複数のインターフェースを実装しています。たとえば、ArrayListListRandomAccessCloneable、およびSerializableを実装します。

4
Mureinik

もちろん...ほとんどすべてのクラスはいくつかのインターフェースを実装しています。 Java Oracleのドキュメントの任意のページに、「すべての実装されたインターフェース」という名前のサブセクションがあります。

ここでは、Dateクラスの です。

3
carexcer

はい、可能です。これはキャッチです:Javaは多重継承をサポートしません。つまり、クラスは複数のクラスを拡張できません。ただし、クラスは複数のインターフェースを実装できます。

2
AlexR

インターフェイスは他のインターフェイスを拡張できます。また、インターフェイスは他のインターフェイスを実装できません。クラスに関しては、他の1つのクラスを拡張し、任意の数のインターフェイスを実装できます。

class A extends B implements C,D{...}
0
Nirmal Dalmia