Kann eine normale Klasse mehrere Schnittstellen implementieren?

8

Ich weiß, dass eine mehrfache Vererbung zwischen Schnittstellen möglich ist, z. B .:

%Vor%

Aber ist es möglich, dass eine reguläre Klasse von mehreren Interfaces wie folgt geerbt wird:

%Vor%

Ich habe versucht, das Problem zu googeln, aber ich kann nichts über mein spezifisches Problem finden.

    
Joshua 21.01.2014, 16:22
quelle

6 Antworten

19

Eine Java-Klasse kann nur eine Elternklasse erweitern. Mehrfachvererbung ( extends ) ist nicht zulässig. Schnittstellen sind jedoch keine Klassen, und eine Klasse kann mehr als eine Schnittstelle implementieren.

Die übergeordneten Schnittstellen werden nach dem Schlüsselwort implements in einer durch Kommas getrennten Liste deklariert.

Zusammenfassend ja ist es möglich:

%Vor%     
Christian 21.01.2014, 16:24
quelle
4
  

öffentliche Klasse A implementiert C, D {...} gültig

Dies ist der Weg, um mehrfache Vererbung in Java zu implementieren

    
java seeker 21.01.2014 16:25
quelle
2

Ja, das ist möglich. Dies ist der Haken: Java unterstützt keine Mehrfachvererbung, d. H. Die Klasse kann nicht mehr als eine Klasse erweitern. Die Klasse kann jedoch mehrere Schnittstellen implementieren.

    
AlexR 21.01.2014 16:23
quelle
2

Mit einem Wort - ja. Tatsächlich implementieren viele Klassen im JDK mehrere Schnittstellen. Zum Beispiel implementiert ArrayList List , RandomAccess , Cloneable und Serializable .

    
Mureinik 21.01.2014 16:25
quelle
2

Natürlich ... Fast alle Klassen implementieren mehrere Schnittstellen. Auf jeder Seite der Java-Dokumentation zu Oracle haben Sie einen Unterabschnitt namens "Alle implementierten Schnittstellen".

Hier ein Beispiel der Klasse Date .

    
carexcer 21.01.2014 16:28
quelle
0

Es ist nicht möglich, dass eine Schnittstelle mehrere Schnittstellen erbt oder erweitert. Eine Schnittstelle kann nur eine andere Schnittstelle erweitern. Auch eine Schnittstelle kann keine andere Schnittstelle implementieren. Wenn es um eine Klasse geht, kann sie eine andere Klasse erweitern und eine beliebige Anzahl von Schnittstellen implementieren.

%Vor%     
Nirmal Dalmia 10.12.2017 14:36
quelle

Tags und Links