Contents
Eine abstrakte Klasse ist eine Klasse, die als abstrakt deklariert wird – sie kann abstrakte Methoden enthalten oder nicht. Abstrakte Klassen können nicht instanziiert, aber in Unterklassen unterteilt werden. Eine abstrakte Klasse kann statische Felder und statische Methoden haben. Wenn eine abstrakte Klasse eine Unterklasse bildet, stellt die Unterklasse normalerweise Implementierungen für alle abstrakten Methoden in ihrer übergeordneten Klasse bereit. Ist dies jedoch nicht der Fall, muss die Unterklasse ebenfalls als abstrakt deklariert werden. Eine abstrakte Methode ist eine Methode, die ohne Implementierung (ohne geschweifte Klammern und gefolgt von einem Semikolon) deklariert wird.
Beispiel für eine abstrakte Klasse
Wann zu verwenden
Ziehen Sie in Erwägung, abstrakte Klassen zu verwenden, wenn eine dieser Aussagen auf Ihre Situation zutrifft:
Eine Schnittstelle ist lediglich die Deklaration von Methoden eines Objekts; es ist nicht die Umsetzung. In einer Schnittstelle definieren wir, welche Art von Operation ein Objekt ausführen kann. Diese Operationen werden durch die Klassen definiert, die die Schnittstelle implementieren. Schnittstellen bilden einen Vertrag zwischen der Klasse und der Außenwelt, und dieser Vertrag wird zur Build-Zeit vom Compiler durchgesetzt.
Beispiel einer Schnittstelle
Wann zu verwenden
Ziehen Sie die Verwendung von Schnittstellen in Betracht, wenn eine dieser Aussagen auf Ihre Situation zutrifft:
Lesen Sie auch: Unterschied zwischen Wurf und Wurf in Java
VERGLEICHSGRUNDLAGE | ABSTRAKTE KLASSE | SCHNITTSTELLE |
Funktion | Eine abstrakte Klasse definiert die Identität einer Klasse. | Schnittstellen helfen, die peripheren Fähigkeiten einer Klasse zu definieren. |
Geschwindigkeit | Abstrakte Klasse ist schnell. | Schnittstelle ist langsam. |
Methoden | Abstrakte Klassen können sowohl abstrakte als auch konkrete Methoden haben. | Interface kann nur abstrakte Methoden haben. Ab Java 8 kann es sowohl Standard- als auch statische Methoden haben. |
Variablen | Abstrakte Klassen können finale, nicht finale, statische und nicht statische Variablen haben. | Interface hat nur statische und finale Variablen. |
Nachlass | Eine abstrakte Klasse kann eine Klasse und mehrere Schnittstellen erben. | Eine Schnittstelle kann mehrere Schnittstellen erben, aber keine Klasse. |
Stichwort | Die abstrakte Klasse wird mit dem abstrakten Schlüsselwort deklariert. | Die Schnittstelle wird mit dem Schlüsselwort interface deklariert. |
Mitglieder | Abstract kann Klassenmitglieder wie private, öffentliche, geschützte usw. haben. | Mitglieder einer Java-Schnittstelle sind standardmäßig öffentlich. |
Implementierung | Eine abstrakte Klasse kann eine andere Java-Klasse erweitern und mehrere Java-Schnittstellen implementieren. | Eine Schnittstelle kann nur eine andere Java-Schnittstelle erweitern. |
Implementierungsschlüsselwort | Ein Abstract kann mit dem Schlüsselwort ”extends” erweitert werden. | Eine Schnittstelle kann mit dem Schlüsselwort ”implements” implementiert werden. |
Flexibilität | Die abstrakte Klasse kann die Implementierung der Schnittstelle bereitstellen. | Die Schnittstelle kann die Implementierung einer abstrakten Klasse nicht bereitstellen. |
Konstruktoren & Destruktoren | Eine abstrakte Klasse kann Konstruktoren und Destruktoren deklarieren. | Eine Schnittstelle kann keine Konstruktoren und Destruktoren deklarieren. |
Abstraktes Schlüsselwort | In einer abstrakten Klasse ist das abstrakte Schlüsselwort obligatorisch, um eine Methode als abstrakt zu deklarieren. | In einem Abstract ist das Schlüsselwort interface optional, um eine Methode als Abstract zu deklarieren. |
Verwendung | Abstrakte Klassen sollten verwendet werden, wenn verschiedene Implementierungen der gleichen Art ein gemeinsames Verhalten aufweisen. | Die Schnittstelle wird verwendet, wenn verschiedene Implementierungen nur die Methodensignatur teilen. Polymorphe Hierarchie von Werttypen. |
Zugriffsmodifikator | Abstrakte Klasse kann einen Zugriffsmodifizierer haben. | Die Schnittstelle hat keine Zugriffsmodifikatoren. Alles, was in der Schnittstelle definiert ist, wird als öffentlicher Modifikator angenommen. |
Lesen Sie auch : Unterschied zwischen Iterator und Aufzählung
Einleitung: Die Begriffe "Freeway" und "Highway" werden oft synonym verwendet, aber es gibt subtile Unterschiede…
Burritos und Enchiladas sind zwei beliebte Gerichte der mexikanischen Küche, die oft miteinander verwechselt werden.…
In der Zellbiologie spielen Replikation und Transkription entscheidende Rollen im genetischen Prozess. Beide sind Mechanismen,…
Osmose und Diffusion sind zwei grundlegende Prozesse, die in der Zellbiologie und Chemie eine entscheidende…
Einleitung: Die Evolution der mobilen Kommunikationstechnologie hat einen bedeutenden Meilenstein erreicht, als 4G (LTE) zu…
Einleitung: JPG und PNG sind zwei gängige Bildformate, die im Internet weit verbreitet sind. Obwohl…