Abstrakte Klasse:
Wenn eine Klasse abstrakte Methoden enthält, wird die Klasse zu einer abstrakten Klasse.
Vor der abstrakten Klasse muss der Modifikator abstract
stehen.
Eine abstrakte Klasse kann gewöhnliche Methoden oder abstrakte Methoden haben, und die Anzahl der abstrakten Methoden kann 0 oder ein Vielfaches sein.
Die Unterklasse erbt die übergeordnete Klasse und muss alle abstrakten Methoden neu schreiben, es sei denn, diese Klasse wird auch eine abstrakte Klasse.
Kostenlose Online-Lernvideoempfehlung: Java-Online-Lernen
Schnittstelle:
Oberflächlich betrachtet ist die Schnittstelle etwas Besonderes Eine abstrakte Klasse, aber eine Klasse ist eine Klasse und eine Schnittstelle ist eine Schnittstelle, was eine parallele Beziehung darstellt.
Alle Methoden in einer Schnittstelle müssen abstrakt sein. (Nach 1.8 dürfen Schnittstellen nicht abstrakte Methoden definieren)
Methodendefinitionen in der Schnittstelle verwenden standardmäßig den Typ public abstract
und Mitgliedsvariablen standardmäßig den Typ public static final
. (Wenn es weggelassen wird, wird es vom System standardmäßig abgeschlossen).
Der Unterschied zwischen abstrakten Klassen und gewöhnlichen Klassen:
Eine Klasse, die abstrakte Methoden enthält, wird als abstrakte Klasse bezeichnet. Dies bedeutet jedoch nicht, dass es nur abstrakte Methoden geben kann In abstrakten Klassen können sie wie gewöhnliche Klassen auch Mitgliedsvariablen und gewöhnliche Mitgliedsmethoden haben.
Der Unterschied zwischen abstrakten Klassen und gewöhnlichen Klassen ist wie folgt:
Die Zugriffsmodifikatoren abstrakter Methoden müssen public
und protected
sein.
Abstrakte Klassen können nicht instanziiert werden.
Wenn eine Klasse von einer abstrakten Klasse erbt, muss die Unterklasse die abstrakte Methode der übergeordneten Klasse implementieren. Wenn die Unterklasse die abstrakte Methode der übergeordneten Klasse nicht implementiert, muss die Unterklasse ebenfalls eine abstrakte Klasse sein.
Der Unterschied zwischen abstrakten Klassen und Schnittstellen:
Eine Klasse kann nur eine abstrakte Klasse erben, während eine Klasse mehrere Schnittstellen implementieren kann.
Abstrakte Klassen können Konstruktoren haben, Schnittstellen jedoch keine Konstruktoren.
Abstrakte Klassen können Mitgliedsvariablen haben, Schnittstellen haben jedoch keine Mitgliedsvariablen. (Von final geändert und in eine Konstante umgewandelt)
In abstrakten Klassen kann es gewöhnliche Methoden geben, aber alle Methoden in Schnittstellen müssen abstrakt sein. (Nach 1.8 dürfen Schnittstellen nicht abstrakte Methoden definieren.)
Der Zugriffstyp abstrakter Methoden in abstrakten Klassen kann public
, protected
sein, der Zugriffstyp abstrakter Methoden in Schnittstellen jedoch nur sein public
, und Der Standardwert ist public abstract
(wenn weggelassen, wird es standardmäßig automatisch vervollständigt).
Mitgliedsvariablen in abstrakten Klassen können von verschiedenen Typen sein, während Mitgliedsvariablen in Schnittstellen nur vom Typ public static final
sein können.
Abstrakte Klassen können statische Codeblöcke und statische Methoden haben, Schnittstellen können jedoch keine statischen Codeblöcke und statischen Methoden enthalten.
Wenn Sie weitere verwandte Artikel und Tutorials erfahren möchten, besuchen Sie bitte: Einführung in die Java-Sprache
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen abstrakten Klassen, gewöhnlichen Klassen und Schnittstellen in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!