„Hallo Amigo! Bilaabo wird dir die Unterschiede zwischen einer abstrakten Klasse und einem Interface erklären. Es gibt mehrere.“
Abstrakte Klasse | Interface |
---|---|
Vererbung | |
Eine abstrakte Klasse kann nur von einer Klasse erben, aber sie kann von beliebig vielen Interfaces erben. | Ein Interface kann nicht von Klassen erben, aber es kann von einer beliebigen Anzahl an Interfaces erben. |
Abstrakte Methoden | |
Eine abstrakte Klasse kann abstrakte Methoden enthalten. Aber sie kann auch überhaupt keine besitzen. | Alle Methoden eines Interfaces (die nicht als static oder default deklariert sind) sind abstrakt, d.h. sie haben keine Implementierung. Ein Interface kann auch überhaupt keine Methoden haben. |
Methoden mit einer Implementierung | |
Eine abstrakte Klasse kann Methoden mit einer Implementierung enthalten. | Ein Interface kann default-Methoden besitzen. |
Daten | |
Keine Einschränkungen. | Ein Interface enthält nur public-final-static-Daten. |
Objekt-Erstellung | |
Du kannst keine Instanz einer abstrakten Klasse erstellen. | Du kannst keine Instanz eines Interfaces erstellen. |
„So sehe ich das. Kurz und bündig.“
„Danke, Amigo.“
GO TO FULL VERSION