Das Schlüsselwort extends wird in Java verwendet, um anzuzeigen, dass eine Klasse von einer Oberklasse erbt. Dies ist ein grundlegender Aspekt der objektorientierten Programmierung in Java, der es einer neuen Klasse ermöglicht, Felder und Methoden von einer bestehenden Klasse zu erben.
Verwendung
Das Schlüsselwort extends wird in Klassendeklarationen verwendet, um eine Vererbungsbeziehung zwischen zwei Klassen herzustellen.
SubclassName: Der Name der neuen Klasse, die geerbt wird.
SuperclassName: Der Name der bestehenden Klasse, von der geerbt wird.
Beispiele
Beispiel 1: Grundlegende Vererbung
classAnimal{voideat(){
System.out.println("This animal eats food.");}}classDogextendsAnimal{voidbark(){
System.out.println("The dog barks.");}}publicclassMain{publicstaticvoidmain(String[] args){
Dog dog =newDog();
dog.eat();// Inherited method
dog.bark();// Method of Dog class}}Bereitgestellt von
In diesem Beispiel erweitert die Klasse Dog die Klasse Animal und erbt deren Methode eat. Die Klasse Dog hat auch eine eigene Methode bark. Wenn eine Instanz von Dog erstellt wird, können sowohl die geerbte Methode eat als auch die Methode bark aufgerufen werden.
Beispiel 2: Überschreibende Methoden
classAnimal{voidsound(){
System.out.println("This animal makes a sound.");}}classCatextendsAnimal{
@Override
voidsound(){
System.out.println("The cat meows.");}}publicclassMain{publicstaticvoidmain(String[] args){
Cat cat =newCat();
cat.sound();// Overridden method}}Bereitgestellt von
Hier erweitert die Klasse Cat die Klasse Animal und überschreibt die Methode sound, um ihre eigene Implementierung bereitzustellen. Die Anmerkung @Override wird verwendet, um anzuzeigen, dass die Methode außer Kraft gesetzt wird.
Beispiel 3: Vererbende Felder
classPerson{
String name;}classEmployeeextendsPerson{
int employeeId;}publicclassMain{publicstaticvoidmain(String[] args){
Employee emp =newEmployee();
emp.name ="John Doe";// Inherited field
emp.employeeId =12345;
System.out.println("Name: "+ emp.name +", Employee ID: "+ emp.employeeId);}}Bereitgestellt von
In diesem Beispiel erweitert die Klasse Employee die Klasse Person und erbt deren Feld name. Die Klasse Employee hat auch ein eigenes Feld employeeId.
Tipps und bewährte Praktiken
Setze die Vererbung mit Bedacht ein: Vererbung sollte verwendet werden, wenn es eine eindeutige "ist-a"-Beziehung zwischen der Unterklasse und der Oberklasse gibt.
Methoden ordnungsgemäß überschreiben: Verwende die @Override Annotation, wenn du Methoden überschreibst, um sicherzustellen, dass du eine Methode der Superklasse korrekt überschreibst.
Vermeide tiefe Vererbungshierarchien: Tiefe Vererbungshierarchien können es schwierig machen, den Code zu verstehen und zu pflegen. Ziehe Komposition der Vererbung vor, wenn es angebracht ist.
Zugriff auf Methoden der Oberklasse: Verwende super, um bei Bedarf Methoden der Oberklasse aus der Unterklasse aufzurufen.
classAnimal{voideat(){
System.out.println("This animal eats food.");}}classDogextendsAnimal{voideat(){super.eat();// Call superclass method
System.out.println("The dog eats dog food.");}}Bereitgestellt von
Konstrukteursverkettung: Verwende super(), um den Konstruktor der Oberklasse vom Konstruktor der Unterklasse aus aufzurufen.
classPerson{Person(String name){
System.out.println("Person's name is "+ name);}}classEmployeeextendsPerson{Employee(String name, int employeeId){super(name);// Call superclass constructor
System.out.println("Employee ID is "+ employeeId);}}Bereitgestellt von
Vererbung verstehen
Vererbung ist ein Schlüsselkonzept der objektorientierten Programmierung (OOP), das eine Beziehung zwischen einer allgemeineren Oberklasse und einer spezifischeren Unterklasse herstellt. Diese Beziehung ermöglicht es der Unterklasse, Attribute und Methoden von der Oberklasse zu erben, was die Wiederverwendbarkeit des Codes und die logische Strukturierung fördert.
Is-A-Beziehung: Das Schlüsselwort extends steht für eine "is-a"-Beziehung. Ein Dog ist zum Beispiel ein Animal, und ein Employee ist ein Person.
Einzelvererbung: Java unterstützt Einfachvererbung, d.h. eine Klasse kann nur eine andere Klasse erweitern, um Mehrdeutigkeit und Komplexität zu vermeiden.
Kombinieren von Erweiterungen und Implementierungen: Eine Klasse kann eine andere Klasse erweitern und mehrere Schnittstellen gleichzeitig implementieren. Diese Kombination ermöglicht es einer Klasse, von einer Oberklasse zu erben und sich an mehrere Verträge zu halten, die durch Schnittstellen definiert sind.
classAnimal{voidmove(){
System.out.println("This animal moves.");}}interfacePet{voidplay();}classDogextendsAnimalimplementsPet{voidbark(){
System.out.println("The dog barks.");}publicvoidplay(){
System.out.println("The dog plays.");}}publicclassMain{publicstaticvoidmain(String[] args){
Dog dog =newDog();
dog.move();// Inherited method from Animal
dog.bark();// Method of Dog class
dog.play();// Implemented method from Pet interface}}Bereitgestellt von
In diesem Beispiel erweitert die Klasse Dog die Klasse Animal und implementiert die Schnittstelle Pet, um die Kombination aus Vererbung und Schnittstellenimplementierung zu veranschaulichen.
Das Schlüsselwort
extendswird in Java verwendet, um anzuzeigen, dass eine Klasse von einer Oberklasse erbt. Dies ist ein grundlegender Aspekt der objektorientierten Programmierung in Java, der es einer neuen Klasse ermöglicht, Felder und Methoden von einer bestehenden Klasse zu erben.Verwendung
Das Schlüsselwort
extendswird in Klassendeklarationen verwendet, um eine Vererbungsbeziehung zwischen zwei Klassen herzustellen.Syntax
SubclassName: Der Name der neuen Klasse, die geerbt wird.SuperclassName: Der Name der bestehenden Klasse, von der geerbt wird.Beispiele
Beispiel 1: Grundlegende Vererbung
In diesem Beispiel erweitert die Klasse
Dogdie KlasseAnimalund erbt deren Methodeeat. Die KlasseDoghat auch eine eigene Methodebark. Wenn eine Instanz vonDogerstellt wird, können sowohl die geerbte Methodeeatals auch die Methodebarkaufgerufen werden.Beispiel 2: Überschreibende Methoden
Hier erweitert die Klasse
Catdie KlasseAnimalund überschreibt die Methodesound, um ihre eigene Implementierung bereitzustellen. Die Anmerkung@Overridewird verwendet, um anzuzeigen, dass die Methode außer Kraft gesetzt wird.Beispiel 3: Vererbende Felder
In diesem Beispiel erweitert die Klasse
Employeedie KlassePersonund erbt deren Feldname. Die KlasseEmployeehat auch ein eigenes FeldemployeeId.Tipps und bewährte Praktiken
@OverrideAnnotation, wenn du Methoden überschreibst, um sicherzustellen, dass du eine Methode der Superklasse korrekt überschreibst.super, um bei Bedarf Methoden der Oberklasse aus der Unterklasse aufzurufen.super(), um den Konstruktor der Oberklasse vom Konstruktor der Unterklasse aus aufzurufen.Vererbung verstehen
Vererbung ist ein Schlüsselkonzept der objektorientierten Programmierung (OOP), das eine Beziehung zwischen einer allgemeineren Oberklasse und einer spezifischeren Unterklasse herstellt. Diese Beziehung ermöglicht es der Unterklasse, Attribute und Methoden von der Oberklasse zu erben, was die Wiederverwendbarkeit des Codes und die logische Strukturierung fördert.
extendssteht für eine "is-a"-Beziehung. EinDogist zum Beispiel einAnimal, und einEmployeeist einPerson.In diesem Beispiel erweitert die Klasse
Dogdie KlasseAnimalund implementiert die SchnittstellePet, um die Kombination aus Vererbung und Schnittstellenimplementierung zu veranschaulichen.