? Java-Klassen definieren Objekte durchzuführen Anwendung Aufgaben . Im Java-Projekte , definieren Programmierer diese Objekte durch die Schaffung Klassendeklarationen . Eine Klasse Erklärung skizziert die Eigenschaften jedes beliebige Objekt Instanzen der Klasse haben , sowie Methoden wird es zu implementieren. In den meisten Fällen können Java-Programme zu erstellen Objekte aller Klassen mit Klassendeklarationen skizziert. Wenn jedoch eine Klasse abstrakt ist , kann es nicht instanziiert werden. Implementation
Normalerweise, wenn ein Programm eine Klassendeklaration enthält, können anderen Code erstellen Objekt Instanzen der Klasse darin skizziert. Wenn dies geschieht , wird das resultierende Objekt halten die Daten und Umsetzung der Methoden innerhalb der Klassendeklaration aufgelistet. Wenn ein Programm eine Klasse als abstrakt deklariert , kann dies nicht passieren , als Objekte der Klasse nicht erstellt werden kann . Der folgende Beispielcode demonstriert , das eine Klasse als abstrakt :
public abstract class GreatHelper
Anders als bei nicht abstrakte Klassen , das Projekt in dem dieser Code erscheint nicht erstellen kann " GreatHelper " Objekt-Instanzen < . br>
Vererbung
Obwohl Programme nicht instanziieren können abstrakte Klassen , können sie erweitern. Java Vererbung ermöglicht es Programmierern, bestehende Klassendeklarationen mit folgender Syntax erweitern :
public class SpecificHelper erstreckt GreatHelper
Wenn eine Klasse eine andere Klasse erweitert , übernimmt es die Methoden und Eigenschaften der übergeordneten Klasse . Erweitern Klassen können zudem zusätzliche Funktionen auf der Oberseite der Superklasse geerbten Variablen und Methoden . Vererbung ist daher ein Weg, um spezielle Funktionen bieten , mit den Unterklassen spezialisiert auf einer Fläche von mehr Verantwortung in der Regel von der übergeordneten Klasse abgedeckt. Mit einer abstrakten Klasse , dieses Prinzip der Vererbung gilt auch , so Unterklassen der abstrakten Klassen instanziiert werden kann , obwohl ihre Eltern nicht können.
Zweck
Abstrakte Klassen ermöglichen es Programmierern, Definitionen für Gruppen von Objekten , die einige gemeinsame Eigenschaften haben wird , aber auch einige Unterschiede zu schaffen. Abstrakte Klassen in der Regel nur teilweise Umsetzung ihrer Aufgaben , während ihre Unterklassen genauere Umsetzung geeignet, um besondere Umstände geben kann. Abstrakte Klassen kann sowohl abstrakte und nicht- abstrakte Methoden . Abstrakte Methoden können nur innerhalb von abstrakten Klassen erscheinen , mit der Forderung, dass Unterklassen werden diese Methoden zu implementieren , es sei denn, sie sind zu abstrakt.
Alternativen
Die wichtigste Alternative zur Schaffung abstrakt Klassen in Java ist die Schaffung Schnittstellen. Wenn ein Programm eine Schnittstelle umfasst, kann Klassendeklarationen diese Schnittstelle implementieren , anstatt sich es wie im Fall einer abstrakten Klasse . Eine Schnittstelle funktioniert wie ein Vertrag , der Definition der Methoden, die implementierenden Klassen müssen , aber ohne Angabe von Details der Implementierung selbst . Eine Schnittstelle kann nur mit Methoden Liste ihre Umrisse , mit der Umsetzung Klassen, die die Methode Details . Der folgende Beispielcode demonstriert eine Klassendeklaration Implementierung einer Schnittstelle :
public class SomeHelper erstreckt HelpfulOrganizer
Innerhalb der Interface-Deklaration , können Verfahren Umrisse wie folgt aussehen:
public String getWords ();
Gegensatz zu abstrakten Klassen können Schnittstellen liefert keine Details der Implementierung
.