Eine abstrakte Klasse ist wie eine Blaupause für andere Klassen. Sie können ein Objekt nicht direkt aus einer abstrakten Klasse erstellen. Stattdessen verwenden Sie es als Grundlage für andere Klassen, die darauf aufbauen und die Details ergänzen können.
Abstrakte Klassen sind nützlich, wenn Sie ein allgemeines Konzept definieren möchten, das einige gemeinsame Funktionen aufweist, aber auch Raum für spezifische Details lassen möchten, die in verschiedenen Situationen variieren können. Beispielsweise könnten Sie eine allgemeine Vorstellung von einem „Tier“ haben, die gemeinsame Merkmale wie Essen oder Schlafen beinhaltet, aber verschiedene Tiere könnten auf unterschiedliche Weise essen oder schlafen.
So können Sie eine abstrakte Klasse namens Animal erstellen:
public abstract class Animal { abstract void makeSound(); // Abstract method, no body void sleep() { System.out.println("This animal sleeps."); } }
In diesem Beispiel ist makeSound() eine abstrakte Methode, das heißt, sie hat noch keinen Körper. Die Methode sleep() ist jedoch vollständig implementiert.
Jetzt erstellen wir einige Klassen, die die Animal-Klasse erweitern:
public class Dog extends Animal { void makeSound() { System.out.println("The dog barks."); } } public class Cat extends Animal { void makeSound() { System.out.println("The cat meows."); } }
Sowohl die Klassen „Dog“ als auch „Cat“ müssen ihre eigene Version der Methode „makeSound()“ bereitstellen, sie erben jedoch die Methode „sleep()“ unverändert.
Eine abstrakte Klasse ist großartig, wenn Sie einige Methoden haben, die von allen untergeordneten Klassen gemeinsam genutzt werden sollten, Sie aber auch erzwingen möchten, dass einige Methoden von diesen untergeordneten Klassen definiert werden.
public abstract class Bird extends Animal { void move() { System.out.println("The bird flies."); } }
Jetzt erbt jede Klasse, die Bird erweitert, sowohl die move()-Methode als auch die sleep()-Methode von Animal, muss aber weiterhin makeSound() implementieren.
Abstrakte Klassen in Java bieten eine Möglichkeit, eine gemeinsame Grundlage für verwandte Klassen zu erstellen und gleichzeitig Raum für die Definition spezifischer Details durch diese Klassen zu lassen. Sie schaffen ein Gleichgewicht zwischen gemeinsamer Funktionalität und Flexibilität und machen Ihren Code sowohl leistungsstark als auch wiederverwendbar.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3