Elemente des Java-Objektmodells: abstrakte Klasse, Schnittstelle

Die Grundidee der abstrakten Klasse liegt in der folgenden These: Manchmal werden nicht fertige Klassen benötigt, sondern in einer "rohen" Form. Solche Leerzeichen können nicht direkt verwendet werden (Instanzen erstellen).

Java abstrakte Klasse

Was ist die abstrakte Klasse in Java?

Betrachten wir ein anderes Beispiel. In Java gibt es eine abstrakte Kalenderklasse im Java.util-Paket. Sie stellen keine bestimmten Kalender implementieren, die verwendet wird, zum Beispiel in West- und Osteuropa, China, Nordkorea, Thailand, etc. Aber es viele nützliche Funktionen hat, wie ein paar Tage zu einem bestimmten Datum hinzugefügt: .. Diese Funktionen für alle erforderlich sind, Implementierung des Kalenders. Sie können keine Instanz aus einer abstrakten Klasse spawnen.

Abstrakte Klassen, Java abstrakte Methoden

Nehmen wir an, Sie müssen mehrere Grafiken entwickelnElemente, zum Beispiel, geometrische Figuren: ein Kreis, ein Rechteck, ein Stern, etc. Und es gibt einen Container, der sie zeichnet. Jede Komponente hat ein anderes Aussehen, daher ist die entsprechende Methode (man nennt sie Farbe) anders implementiert. Jede Komponente hat jedoch viele gemeinsame Merkmale: Die Figuren müssen in ein Rechteck geschrieben sein, eine Farbe haben, sichtbar und unsichtbar sein usw. Das heißt, Sie müssen für alle diese Formen eine Elternklasse erstellen, wobei jede Komponente gemeinsame Eigenschaften erbt.

abstrakte Klassen abstrakte Methoden Java
Aber was ist mit der Malmethode? Schließlich hat die Elternklasse keine visuelle Darstellung. Wenn Sie die Paint-Methode in jeder Klasse unabhängig deklarieren, müssen Sie analysieren, welche Komponente verarbeitet wird, und dann den Typ umwandeln. Daher sollte die Methode in der übergeordneten Klasse als abstrakt deklariert werden: Setzen Sie den Methodenkopf ohne den Rumpf. Und jede abgeleitete Klasse wird ihren Körper beschreiben. In Java kann eine abstrakte Klasse abstrakte Methoden kapseln.

Wenn eine Klasse abstrakte Methoden hat, dannDie Klasse ist abstrakt. Vor dem Wort class steht das Schlüsselwort abstract, im Header der Methode - auch. Nach dem Kopf dieser Methode müssen Sie ein Semikolon setzen. In Java kann eine abstrakte Klasse keine Instanzen erzeugen. Wenn wir ihre Erstellung verbieten wollen, auch wenn die Klasse keine abstrakten Methoden hat, kann die Klasse als abstrakt deklariert werden. Wenn eine Klasse jedoch mindestens eine abstrakte Methode besitzt, muss die Klasse abstrakt sein. Es ist unmöglich für die Klasse, abstrakt, endgültig und auch methodisch zu sein. Die Methode kann nicht abstrakt, privat, statisch oder nativ sein. Damit die Erbenklassen als nicht-abstrakt deklariert werden und ihre Instanzen erstellen, müssen sie alle abstrakten Methoden des übergeordneten Elements implementieren. Die Klasse selbst kann ihre abstrakten Methoden verwenden.

Beispiel:

  • abstrakte Klasse AClass {
  • öffentliche abstrakte void-Methode (int a);
  • }
  • Klasse BClass erweitert AClass {
  • Öffentliche Void-Methode (int a) {
  • // Körper
  • }

Variablen des abstrakten Klassentyps sind erlaubt. Sie können auf den nicht abstrakten Nachkommen dieser Klasse verweisen oder null sein.

Schnittstellen in Java - eine Alternative zur Mehrfachvererbung

Schnittstellen und abstrakte Java-Klassen

Java hat keine Mehrfachvererbung, weil es dann bestimmte Probleme gibt. Eine Klasse kann nicht von mehreren Klassen erben. Aber es kann mehrere Schnittstellen implementieren.

Java-Schnittstellen und abstrakte Klassenähnlich, aber nicht identisch. Die Schnittstelle kann als öffentlich deklariert werden, dann ist es für alle verfügbar ist, oder Sie können den Modifikator public weglassen, dann ist die Schnittstelle nur in der Verpackung. Das abstract-Schlüsselwort ist nicht erforderlich, da die Schnittstelle bereits abstrakt ist, Sie können sie jedoch angeben.

Schnittstellenkennung

der Unterschied zwischen der abstrakten Klasse und der Java-Schnittstelle

Es beginnt mit einem Header und kann zuerst gehendas Schlüsselwort public, dann das Wort interface. Dann kann es das Wort extends und die Enumeration der Interfaces geben, von denen dieses vererbt wird. Es sind keine Wiederholungen erlaubt, und es ist auch unmöglich, dass die Vererbungsbeziehung zyklisch ist. Dann kommt der Interface-Körper, der in Klammern eingeschlossen ist. Elementfelder werden im Schnittstellenkörper deklariert: konstante Felder und abstrakte Methoden. Alle Felder sind public final static - alle diese Modifikatoren sind optional. Alle Methoden gelten als public abstract - diese Modifikatoren können ebenfalls angegeben werden. Jetzt ist genug genug über den Unterschied der abstrakten Klasse von der Java-Schnittstelle gesagt.

  • öffentliche Schnittstelle AI erweitert B, C, D {
  • // Körper
  • }

Um eine Klasse als Nachfolger der Schnittstelle zu deklarieren, müssen Sie das Schlüsselwort implements verwenden:

  • Klasse AClass implementiert BI, CI, DI {}

Das heißt, wenn der Name der Schnittstelle in der Klassendeklaration nach Utensilien angegeben ist, implementiert die Klasse sie. Die Erben dieser Klasse erben ihre Elemente, also implementieren sie sie auch.

Variablen des Interface-Typs sind ebenfalls erlaubt. Sie können sich auf den Typ der Klasse beziehen, die diese Schnittstelle implementiert, oder auf null. Solche Variablen haben alle Elemente der Object-Klasse, da Objekte aus Klassen generiert werden und diese wiederum von der Object-Klasse geerbt werden.

In diesem Artikel haben wir uns einige Elemente des Java-Objektmodells angesehen - abstrakte Klassen, abstrakte Methoden, Schnittstellen.

</ p>
Mochte:
0
Verwandte Artikel
Java: Eingabestream. Eingabestreams
Abstrakte Klasse und Methode: Beschreibung,
Details zur Herstellung
Java ist nicht installiert: Was soll ich tun? Wie kann
Wie installiere ich Java unter Windows 7?
Java Integrierte Entwicklungsumgebung
So entfernen Sie die Schnittstelle in "CS: GO" mit
Java: Arbeiten mit Dateien - Schreiben, Lesen,
Abstrakte Zeichnung - wie und was können Sie tun?
Beliebte Beiträge
up