Heim > Java > JavaErste Schritte > Was ist der Unterschied zwischen abstrakten Klassen, gewöhnlichen Klassen und Schnittstellen in Java?

Was ist der Unterschied zwischen abstrakten Klassen, gewöhnlichen Klassen und Schnittstellen in Java?

王林
Freigeben: 2019-11-27 14:27:23
nach vorne
5054 Leute haben es durchsucht

Was ist der Unterschied zwischen abstrakten Klassen, gewöhnlichen Klassen und Schnittstellen in Java?

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!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage