„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