Sobes.tech
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.