Video: Was ist eine abstrakte Klasse in Java? 2024
Eine abstrakte Klasse in Java ist eine Klasse, die einen oder mehrere abstrakte Methoden , , die einfach Methodendeklarationen ohne Körper sind - das heißt ohne ausführbaren Code, der die Klasse oder Methode implementiert. Eine abstrakte Methode ähnelt einem Prototyp für eine Methode. Sie deklariert den Rückgabetyp und die Parameterliste der Methode, stellt jedoch keine tatsächliche Implementierung der Methode bereit.
Sie können keine abstrakte Klasse instanziieren. Sie können jedoch eine Unterklasse erstellen, die eine abstrakte Klasse erweitert und eine Implementierung der von der abstrakten Klasse definierten abstrakten Methoden bereitstellt. Sie können die Unterklasse instanziieren.
Um eine abstrakte Methode zu erstellen, geben Sie den Modifikator abstract an und ersetzen den Methodenkörper durch ein Semikolon:
public abstract return-type Methodenname (Parameterliste);
Hier ein Beispiel:
public abstract int hit (int batSpeed);
Um eine abstrakte Klasse zu erstellen, verwenden Sie die Zusammenfassung der Klassendeklaration und fügen mindestens eine abstrakte Methode hinzu. Zum Beispiel:
öffentliche abstrakte Klasse Ball {public abstract int hit (int batSpeed);}
Sie können eine Unterklasse aus einer abstrakten Klasse wie folgt erstellen:
public class BaseBall erweitert Ball {public int hit (int batSpeed) {// Code, der die Methode hit implementiert, geht hier}}
Wenn Sie eine abstrakte Klasse unterklassifizieren, muss die Unterklasse eine Implementierung für jede abstrakte Methode in der abstrakten Klasse. Mit anderen Worten muss es jede abstrakte Methode überschreiben.
Abstrakte Klassen sind nützlich, wenn Sie einen generischen Typ erstellen möchten, der als Oberklasse für zwei oder mehr Unterklassen verwendet wird, aber die Oberklasse selbst repräsentiert kein tatsächliches Objekt. Wenn beispielsweise alle Mitarbeiter fest angestellt sind oder stündlich arbeiten, ist es sinnvoll, eine abstrakte Employee-Klasse zu erstellen und diese dann als Basisklasse für die Unterklassen SalariedEmployee und HourlyEmployee zu verwenden.
Hier ein paar zusätzliche Details zu abstrakten Klassen:
-
Nicht alle Methoden in einer abstrakten Klasse müssen abstrakt sein. Eine Klasse kann eine Implementierung für einige ihrer Methoden bereitstellen, aber nicht für andere. Selbst wenn eine Klasse keine abstrakten Methoden hat, können Sie sie trotzdem als abstrakt deklarieren. (In diesem Fall kann die Klasse jedoch nicht instanziiert werden.)
-
Eine private Methode kann nicht abstrakt sein. Alle abstrakten Methoden müssen öffentlich sein.
-
Eine Klasse kann nicht abstrakt und endgültig sein.