173 Shares 1122 views

Elemente von Java-Objektmodell: eine abstrakte Klasse, eine Schnittstelle

Die Hauptidee der abstrakten Klasse wird in den folgenden Thesen enthalten: manchmal keine Kochkurse erfordert, und in „nassen“ Form. Solche Rohlinge verwendet werden, können nicht direkt (instanziiert).

Was ist eine abstrakte Klasse in Java

Betrachten wir ein anderes Beispiel. Es gibt eine Java abstrakte Klasse Kalender in 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, Kalender der Umsetzung. Es ist unmöglich, eine Kopie der abstrakten Klasse zu erzeugen.

Abstrakte Klassen, abstrakte Java-Methoden

Angenommen, Sie mehrere grafische Elemente entwickeln wollen, zum Beispiel geometrische Formen: .. Ein Kreis, Rechteck, Stern, etc. Und es ist ein Behälter, der sie zieht. Jede Komponente des Erscheinens ist anders, so dass die entsprechende Methode (auch wenn es Farbe genannt wird) unterschiedlich implementiert. Jedoch hat jede Komponente viele Ähnlichkeiten hat: .. Die Figur sollte in der Box enthalten sein kann, eine Farbe aufweist, sichtbar und unsichtbar zu sein, usw. Mit anderen Worten, müssen Sie eine übergeordnete Klasse für all diese Figuren zu schaffen, wobei jede Komponente der allgemeinen Eigenschaften erbt. Aber was ist mit der Lack-Methode? Schließlich ist die Elternklasse keine visuelle Darstellung. Wenn Sie eine Farbe Methode in jeder Klasse unabhängig erklären, wird es notwendig sein, zu analysieren, welche Komponente verarbeitet wird, und dann die Besetzung durchzuführen. Daher muss die Methode in der übergeordneten Klasse abstrakt deklariert werden: Die Methode setzen Sie den Titel ohne Körper. Ein Körper jeder abgeleiteten Klasse wird seine eigene beschreiben. In Java, eine abstrakte Klasse kann die abstrakten Methoden eingeben.

Wenn eine Klasse abstrakte Methoden hat, ist die Klasse abstrakt. Bevor die Wortklasse legte das Schlüsselwort abstrakt, den Titel des Verfahrens – zu. Nach dem Titel eines solchen Verfahrens ist notwendig, ein Semikolon zu setzen. In Java kann eine abstrakte Klasse keine Kopien herzustellen. Wenn wir ihre Schöpfung verbieten wollen, auch wenn es keine abstrakten Methoden der Klasse ist, kann die Klasse abstrakt deklariert werden. Aber wenn die Klasse mindestens eine abstrakte Methode hat, muss die Klasse abstrakt sein. Es ist unmöglich, die Klasse war und abstrakt ist und letzte und das Verfahren zu. Das Verfahren kann nicht abstrakt, privat, statisch, heimisch. Unterklasse könnte man nicht abstrakt deklarieren und instanziieren, müssen sie alle abstrakten Methoden der Eltern implementieren. Die Klasse selbst kann seine abstrakten Methoden.

Beispiel:

  • abstrakte Klasse AClass {
  • public abstract voidMethode (int a) ;
  • }
  • Klasse BKlasse erweitert AClass {
  • public void Methode (int a) {
  • // Körper
  • }

Erlaubt Variablen wie abstrakte Klasse. Sie können zu einem nicht-abstrakten Kind dieser Klasse beziehen oder null sein.

Schnittstellen in Java – eine Alternative zur Mehrfachvererbung

In Java gibt es keine Mehrfachvererbung, denn dann gibt es gewisse Probleme. Eine Klasse kann nicht von mehreren Klassen erben. Aber er kann mehrere Schnittstellen implementieren.

Java-Schnittstellen und abstrakte Klassen – sind die Konzepte ä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. Abstrakt Kennwort ist nicht erforderlich, da die Schnittstelle und so abstrakt ist, aber Sie können angeben.

Eine Interface-Deklaration

Es beginnt mit einem Header und zunächst auf das Schlüsselwort Öffentlichkeit gehen kann, dann – Wort-Schnittstelle. Dann kann es sein, ein Wort erweitert und Transferschnittstellen, von denen diese geerbt. Es ist nicht zu wiederholen erlaubt, und es ist unmöglich, ein zyklisches Verhältnis der Vererbungsbeziehung zu bilden. Dann kommt der Schnittstelle Körper, eingeschlossen in geschweiften Klammern. Im Körper der Schnittstellenelemente erklärt: Feldkonstanten und abstrakte Methoden. Alle Felder sind public static final – alle diese Modifikatoren sind nicht erforderlich. Alle Methoden in Betracht gezogen werden öffentlich abstrakt sein – diese Modifikatoren können ebenfalls angegeben werden. Nun wird gesagt, genug über den Unterschied zwischen einer abstrakten Klasse von der Java-Schnittstelle.

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

Um eine Klasse Schnittstelle Erben zu erklären, müssen die Keyword-Geräte verwenden:

  • Klasse AClass implementiert BI, CI, DI {}

Das heißt, wenn nach der Klassendeklaration angegebenen Schnittstellennamen implementiert, seine Klasse implementiert. Erben dieser Klasse bekommt seine Elemente, so dass sie verkaufen sie auch.

Variablen eines Interface-Typ ist auch erlaubt. Sie können auf einen Typ der Klasse beziehen, die diese Schnittstelle implementiert, oder null. Solche Variablen haben alle Elemente der Objektklasse, da die Objekte von Klassen erzeugt werden, und diese wiederum leiten sich aus der Objektklasse.

In diesem Artikel diskutierten wir einige Elemente der Java-Objektmodell – abstrakte Klassen, abstrakte Methoden Schnittstelle.