Java bietet mehrere Möglichkeiten zur Bereitstellung von Datenabstraktion wie Java -Schnittstellen und Java -Abstract -Klassen. Sowohl die Schnittstellen- als auch die abstrakte Klasse bieten Sicherheit, indem sie die internen Implementierungsdetails verbergen und nur die erforderlichen Details anzeigen/hervorheben. Es gibt jedoch zahlreiche Ähnlichkeiten und Unterschiede zwischen abstrakten Klassen und Schnittstellen.
Dieser Beitrag hilft Ihnen in den folgenden Aspekten von Java-Schnittstellen und abstrakten Klassen:
Also beginnen wir beginnen!
Was ist eine Java -Schnittstelle
Es ist eine Vorlage für eine Klasse, die einige abstrakte Methoden und statische/endgültige Variablen enthält. In Java liefern Schnittstellen nur eine Methodenerklärung, während Kinder-/implementierte Klassen die Methodendefinition bereitstellen.
Was ist eine java abstrakte Klasse
Jede Java -Klasse, die mindestens eine abstrakte Methode (nur Methodenerklärung) hat, wird als abstrakte Klasse in Java bezeichnet.
Vergleich auf der Grundlage von Ähnlichkeiten
Einige wichtige Aspekte von Java -Schnittstellen und abstrakten Klassen sind unten aufgeführt:
Java abstrakte Klasse gegen Java -Schnittstelle
Die Schlüsselwörter „Abstract“ und „Schnittstelle“ werden in Java verwendet, um die abstrakten Klassen bzw. Schnittstellen zu erstellen/zu deklarieren.
In Schnittstellen werden alle Mitglieder standardmäßig als öffentlich angesehen, sodass der Zugriffsmodifikator für die Mitglieder von Schnittstellen nicht angeben müssen. Während in abstrakten Klassen gibt es keine solche Einschränkung, und daher kann jeder Zugriffsmodifikator für Mitglieder abstrakter Klassen wie öffentlich, geschützt usw. verwendet werden.
Die grundlegende Syntax einer abstrakten Klasse und einer Schnittstelle ist in den folgenden Snippets gezeigt:
Abstrakte Klasse
öffentliche abstrakte KlassenklassennameSchnittstelle
öffentliche Schnittstelle interfacenameDie Schnittstellen müssen alle abstrakten Methoden haben, während die abstrakten Klassen sowohl abstrakte als auch nicht abstrakte Methoden haben können.
Die Schnittstelle kann nur statische Mitglieder haben, während abstrakte Klassen statische und nicht statische Mitglieder haben können.
Schnittstellen haben nur „endgültige“ (unveränderliche) Mitglieder, während abstrakte Klassen endgültige und Nicht-Finalmitglieder haben können.
Schnittstellen haben keinen Konstruktor, während abstrakte Klassen benutzerdefinierte oder Standardkonstruktoren haben.
Multiple Vererbung kann unter Verwendung von Schnittstellen erreicht werden, während abstrakte Klassen die Mehrfachvererbung nicht unterstützen.
In Java kann die abstrakte Klasse eine andere Klasse erben und viele Schnittstellen implementieren. Andererseits kann eine Java -Schnittstelle nur eine andere Schnittstelle erweitern.
Beispiel
Mit dem folgenden Beispiel können Sie verstehen, wie Schnittstellen und abstrakte Klassen in Java funktionieren:
Schnittstelle FirstInterfaceIn diesem Beispiel haben wir eine Schnittstelle erstellt "FirstInterface", eine abstrakte Klasse "Abstrakte Klasse", und zwei weitere normale Java -Klassen und führten die folgenden Funktionen aus:
Der Schnittstelle ist die Hauptklasse, aus der wir die Hauptmethode erstellt und alle Methoden von aufgerufen haben FirstInterface:
Die Ausgabe bestätigte die Arbeit des oben gegebenen Java-Programms.
Abschluss
In Java kann eine Abstraktion mit abstrakten Klassen und Schnittstellen erreicht werden, und beide können nicht instanziiert werden. Es gibt jedoch mehrere Unterschiede zwischen abstrakten Klassen und Schnittstellen. Beispielsweise müssen die Schnittstellen alle abstrakten Methoden haben, während die abstrakten Klassen abstrakte und nicht abstrakte Methoden haben können. Unter Verwendung von Schnittstellen kann mehrere Vererbung erreicht werden, während abstrakte Klassen mehrerer Vererbung usw. unterstützen, usw. Dieser Beitrag erläuterte verschiedene Aspekte abstrakter Klassen und Schnittstellen mit Hilfe geeigneter Beispiele.