Heim  >  Artikel  >  Java  >  Was sind die Gemeinsamkeiten und Unterschiede zwischen abstrakten Klassen und Schnittstellen?

Was sind die Gemeinsamkeiten und Unterschiede zwischen abstrakten Klassen und Schnittstellen?

王林
王林nach vorne
2020-08-13 16:51:362467Durchsuche

Was sind die Gemeinsamkeiten und Unterschiede zwischen abstrakten Klassen und Schnittstellen?

Der Unterschied zwischen abstrakten Klassen und Schnittstellen:

(Empfohlenes Tutorial: Java-Einführungs-Tutorial)

Eine abstrakte Klasse kann sowohl abstrakte Methoden als auch nicht abstrakte gewöhnliche Methoden enthalten, während die Methoden in einer Schnittstelle abstrakt sein müssen Verfahren.

Der Zugriffstyp abstrakter Methoden in abstrakten Klassen kann öffentlich, geschützt oder standardmäßig sein, die abstrakten Methoden in Schnittstellen können jedoch nur öffentlich sein.

Abstrakte Klassen können normale Mitgliedsvariablen haben, während alle Variablen in der Schnittstelle öffentliche statische Endvariablen sind, das heißt, sie sind alle Konstanten.

Abstrakte Klassen können Konstruktoren haben, Schnittstellen jedoch keine Konstruktoren.

Abstrakte Klassen können statische Methoden haben, Schnittstellen jedoch keine statischen Methoden.

Eine Klasse kann mehrere Schnittstellen implementieren, aber nur eine abstrakte Klasse erben. Wenn eine abstrakte Klasse eine Schnittstelle implementiert, können die Methoden in der Schnittstelle der abstrakten Klasse als abstrakte Methoden zugeordnet werden, ohne dass sie implementiert werden müssen, und die Methoden in der Schnittstelle können in Unterklassen der abstrakten Klasse implementiert werden.

Die gleichen Punkte zwischen abstrakten Klassen und Schnittstellen:

(Empfehlung für Lernvideos: Java-Kurs)

  • kann vererbt werden

  • kann Methodendeklarationen enthalten

  • kann nicht instanziiert werden

  • Abgeleitete Klassen müssen nicht implementierte Methoden implementieren

Das obige ist der detaillierte Inhalt vonWas sind die Gemeinsamkeiten und Unterschiede zwischen abstrakten Klassen und Schnittstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:Was bedeutet Java-Kapselung?Nächster Artikel:Was bedeutet Java-Kapselung?