Java Vererbung ist ein grundlegendes Konzept in der objektorientierten Programmierung, das es einer neuen Klasse ermöglicht, Eigenschaften und Verhaltensweisen (Felder und Methoden) von einer bestehenden Klasse zu erben. Dies fördert die Wiederverwendbarkeit des Codes und stellt eine hierarchische Beziehung zwischen den Klassen her.
Schlüsselkonzepte
Superklasse (übergeordnete Klasse): Die Klasse, deren Eigenschaften und Methoden vererbt werden.
Unterklasse (Child Class): Die Klasse, die von der Oberklasse erbt.
Verwendung
Vererbung wird verwendet, um eine neue Klasse zu erstellen, die ein Typ einer bestehenden Klasse ist. Sie hilft dabei, die Funktionalität einer Klasse zu erweitern, ohne sie zu verändern, und hält sich damit an das Open/Closed-Prinzip des Softwaredesigns.
Syntax
classSuperclass{// fields and methods}classSubclassextendsSuperclass{// additional fields and methods}Bereitgestellt von
Beispiele
Beispiel 1: Grundlegende Vererbung
classAnimal{voideat(){System.out.println("This animal eats food.");}}classDogextendsAnimal{voidbark(){System.out.println("The dog barks.");}}publicclassInheritanceExample{publicstaticvoidmain(String[] args){Dog dog =newDog();
dog.eat();// Inherited method
dog.bark();// Subclass method}}Bereitgestellt von
In diesem Beispiel ist Dog eine Unterklasse, die die Methode eat von der Oberklasse Animal erbt. Die Klasse Dog hat auch eine eigene Methode, bark.
Beispiel 2: Überschreibende Methoden
classVehicle{voidrun(){System.out.println("The vehicle is running.");}}classCarextendsVehicle{@Overridevoidrun(){System.out.println("The car is running safely.");}}publicclassMethodOverridingExample{publicstaticvoidmain(String[] args){Car car =newCar();
car.run();// Overridden method}}Bereitgestellt von
Hier überschreibt die Klasse Car die Methode run der Klasse Vehicle, um eine spezielle Implementierung zu ermöglichen.
Beispiel 3: Mit super Schlüsselwort
classPerson{String name ="John";voiddisplay(){System.out.println("Person's name: "+ name);}}classEmployeeextendsPerson{String name ="Doe";voiddisplay(){System.out.println("Employee's name: "+ name);super.display();// Call superclass method}}publicclassSuperKeywordExample{publicstaticvoidmain(String[] args){Employee emp =newEmployee();
emp.display();}}Bereitgestellt von
In diesem Beispiel wird das Schlüsselwort super verwendet, um die Methode display der Oberklasse Person aus der Unterklasse Employee aufzurufen.
Tipps und bewährte Praktiken
Setze die Vererbung mit Bedacht ein: Verwende die Vererbung nur, wenn es eine echte "ist-a"-Beziehung gibt. Eine Dog ist zum Beispiel eine Animal.
Vermeide tiefe Vererbungshierarchien: Halte Vererbungshierarchien flach, um die Einfachheit zu erhalten und die Komplexität zu reduzieren.
Ziehe Komposition der Vererbung vor: Erwäge die Verwendung von Komposition (has-a-Beziehung) anstelle von Vererbung, wenn es angebracht ist, da dies mehr Flexibilität bietet.
Verwende @Override Annotation: Verwende immer die @Override Annotation, wenn du Methoden überschreibst, um die Lesbarkeit des Codes zu verbessern und Fehler zu vermeiden.
Zugangskontrolle: Verwende den Zugriffsmodifikator protected für Oberklassenelemente, die in Unterklassen zugänglich sein sollen, aber nicht für die Außenwelt.
Java Vererbung ist ein grundlegendes Konzept in der objektorientierten Programmierung, das es einer neuen Klasse ermöglicht, Eigenschaften und Verhaltensweisen (Felder und Methoden) von einer bestehenden Klasse zu erben. Dies fördert die Wiederverwendbarkeit des Codes und stellt eine hierarchische Beziehung zwischen den Klassen her.
Schlüsselkonzepte
Verwendung
Vererbung wird verwendet, um eine neue Klasse zu erstellen, die ein Typ einer bestehenden Klasse ist. Sie hilft dabei, die Funktionalität einer Klasse zu erweitern, ohne sie zu verändern, und hält sich damit an das Open/Closed-Prinzip des Softwaredesigns.
Syntax
Beispiele
Beispiel 1: Grundlegende Vererbung
In diesem Beispiel ist
Dogeine Unterklasse, die die Methodeeatvon der OberklasseAnimalerbt. Die KlasseDoghat auch eine eigene Methode,bark.Beispiel 2: Überschreibende Methoden
Hier überschreibt die Klasse
Cardie Methoderunder KlasseVehicle, um eine spezielle Implementierung zu ermöglichen.Beispiel 3: Mit
superSchlüsselwortIn diesem Beispiel wird das Schlüsselwort
superverwendet, um die Methodedisplayder OberklassePersonaus der UnterklasseEmployeeaufzurufen.Tipps und bewährte Praktiken
Dogist zum Beispiel eineAnimal.@OverrideAnnotation: Verwende immer die@OverrideAnnotation, wenn du Methoden überschreibst, um die Lesbarkeit des Codes zu verbessern und Fehler zu vermeiden.protectedfür Oberklassenelemente, die in Unterklassen zugänglich sein sollen, aber nicht für die Außenwelt.