Warum abstrakte Klassen in Java?

July 4

Warum abstrakte Klassen in Java?

Java-Klassen definieren Objekte Anwendungsaufgaben erfüllen. In Java-Projekten definieren Programmierer diese Objekte durch ihre Klassendeklarationen. Eine Deklaration der Klasse beschreibt die Eigenschaften, die alle Instanzen der Klasse haben werden, die sowie Methoden, die es umsetzt. In den meisten Fällen können Java-Programme Objekte von Klassen mit Klassendeklarationen beschrieben erstellen. Jedoch, wenn eine Klasse abstrakt ist, es kann nicht instanziiert werden.

Umsetzung

Normalerweise, wenn ein Programm eine Class-Deklaration enthält, können andere Code Object-Instanzen der Klasse, die darin beschriebenen erstellen. Wenn dies geschieht, wird das resultierende Objekt halten die Daten und implementieren Sie die Methoden in der Klassendeklaration aufgeführt. Wenn ein Programm eine Klasse als abstrakt deklariert, kann nicht das geschehen, da die Objekte der Klasse nicht erstellt werden können. Der folgende Beispielcode veranschaulicht eine Klasse als abstrakt deklariert:

publicabstractclass GreatHelper

Im Gegensatz zu nicht abstrakte Klassen, kann nicht das Projekt, in dem dieser Code angezeigt wird "GreatHelper" Object-Instanzen erstellen.

Vererbung

Obwohl Programme abstrakte Klassen instanziiert werden können, können sie sie erweitern. Java Vererbung ermöglicht Programmierern, erweitern vorhandene Klassendeklarationen mithilfe der folgenden Syntax:

SerializableAttribute public Class SpecificHelper extends GreatHelper

Wenn eine Klasse eine andere Klasse erweitert, erbt die Methoden und Eigenschaften der übergeordneten Klasse. Erweitern von Klassen kann auch zusätzliche Funktionen auf Basis der geerbten Oberklasse-Variablen und Methoden bereitstellen. Vererbung ist daher ein Weg, um spezielle Funktionen, Unterklassen spezialisiert in einem Verantwortungsbereich fallenden ganz allgemein die übergeordnete Klasse bieten. Mit einer abstrakten Klasse gilt das Prinzip der Vererbung auch, so Unterklassen von abstrakten Klassen instanziiert werden können, obwohl der Eltern nicht möglich.

Zweck

Abstrakte Klassen können Programmierer Definitionen für Sätze von Objekten zu erstellen, die einige Eigenschaften, aber auch einige Unterschiede geteilt haben. Abstrakte Klassen implementieren i. d. r. nur teilweise ihrer Verantwortung, während ihre Unterklassen detailliertere Umsetzung geeignet, die spezifischen Umstände bieten können. Abstrakte Klassen können sowohl abstrakte und nicht abstrakte Methoden enthalten. Abstrakte Methoden können nur innerhalb abstrakte Klassen, mit der Forderung erscheinen, dass Unterklassen dieser Methoden umsetzen werden, es sei denn, sie auch abstrakt sind.

Alternativen

Die wichtigste Alternative zum Erstellen von abstrakten Klassen in Java schafft Schnittstellen. Wenn ein Programm eine Schnittstelle enthält, können die Klassendeklarationen diese Schnittstelle, anstatt eine Erweiterung wie im Fall einer abstrakten Klasse implementieren. Eine Interface-Funktionen wie einen Vertrag, definieren die Methoden, die Implementierung von Klassen bereitstellen muss, aber ohne jede Implementierung ausführlich selbst. Eine Schnittstelle kann Methoden mit nur ihre Umrisse mit der Implementierung von Klassen, die die Methode Details auflisten. Der folgende Beispielcode veranschaulicht eine Deklaration der Klasse eine Schnittstelle implementiert:

SerializableAttribute public Class SomeHelper extends HelpfulOrganizer

Innerhalb der Schnittstellendeklaration können Methode Konturen wie folgt aussehen:

public String getWords();

Im Gegensatz zu abstrakten Klassen können keine Schnittstellen alle Implementierungsdetails bereitstellen.