Junior
Was ist der Unterschied zwischen abstrakten Klassen und Schnittstellen?
sobes.tech KI
Antwort von AI
Abstrakte Klasse:
- Kann abstrakte (ohne Implementierung) und konkrete (mit Implementierung) Methoden enthalten.
- Kann Felder (Instanzvariablen) enthalten.
- Kann Konstruktoren haben.
- Erlaubt einfache Vererbung (eine Klasse kann von einer abstrakten Klasse erben).
- Wird verwendet, um die Grundstruktur und das allgemeine Verhalten für verwandte Klassen zu definieren.
Schnittstelle:
- Kann nur abstrakte Methoden enthalten (einige Sprachen, wie Java ab Version 8, erlauben default- und static-Methoden mit Implementierung).
- Kann keine Instanzfelder enthalten (nur Konstanten).
- Kann keine Konstruktoren haben.
- Erlaubt Mehrfachimplementierung (eine Klasse kann mehrere Schnittstellen implementieren).
- Wird verwendet, um einen Vertrag zu definieren, den Klassen erfüllen müssen.