Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen OOP-Prinzipien: Vererbung | Oop
Java OOP

bookOOP-Prinzipien: Vererbung

Vererbung

Betrachten wir das OOP-Prinzip – Vererbung.

Vererbung ist ein Mechanismus, der die Erstellung von Klassen auf Basis einer anderen Klasse ermöglicht.

  • Die Klasse, die als Grundlage dient, wird als Elternklasse oder Superklasse bezeichnet;
  • Die auf Basis der Elternklasse erstellte Klasse wird als Kindklasse, Subklasse oder Nachfolger bezeichnet.

Somit kann die Kindklasse die Eigenschaften und Merkmale einer anderen Klasse – der Elternklasse (deren Methoden und Variablen) – erben.

Eine Klasse kann mit dem Schlüsselwort extends vererbt werden. Die Syntax für eine Kindklasse, die von einer Elternklasse erbt, sieht folgendermaßen aus:

Child.java

Child.java

copy
123
class Child extends Parent { // properties and methods }

Schauen wir uns ein Beispiel an, wie Vererbung im Code funktioniert. Wir haben eine Klasse Bird mit bestimmten Feldern und Methoden, und es gibt eine Klasse Parrot mit eigenen Feldern und Methoden. Ein Papagei ist ein Vogel, daher sollte der Papagei logisch von der Klasse Bird erben:

Hier ist der Code aus dem Screenshot, überarbeitet für bessere Lesbarkeit und Klarheit:

Bird.java

Bird.java

Parrot.java

Parrot.java

Main.java

Main.java

copy
12345678910111213141516171819
package animals.birds; public class Bird { public String color; public boolean canFly; public int maxAge; public void eat() { System.out.println("The bird is eating"); } public void fly() { if (canFly) { System.out.println("The bird is flying!"); } else { System.out.println("This bird can't fly :("); } } }

Lassen Sie uns verstehen, was auf diesen Abbildungen passiert:

  1. Es wird eine Klasse Bird erstellt, die in unserem Fall die Elternklasse ist. Diese Klasse besitzt eigene Felder und Methoden;
  2. Es wird eine Klasse Parrot erstellt, die mit dem Schlüsselwort extends von der Elternklasse Bird erbt. Die Klasse Parrot ist eine Kindklasse und verfügt über eigene Felder und Methoden. Zusätzlich erbt die Kindklasse Parrot alle Felder und Methoden der Elternklasse Bird;
  3. Im Parrot-Modul wird ein Objekt der Klasse main erstellt. Dabei kann man die Felder sowohl der Eltern- als auch der Kindklasse initialisieren. Zuerst werden die Felder der Elternklasse Bird initialisiert, anschließend die Felder der Kindklasse Parrot. Danach werden die Methoden aufgerufen: zuerst die Methoden der Elternklasse, dann die Methode der Kindklasse.

So wurde durch Vererbung die Klasse Bird geerbt.

Warum machen wir das?

Wenn es viele verschiedene Unterklassen von Bird gibt, nicht nur Parrot, sondern zum Beispiel auch Pigeon und Penguin, entstehen viele doppelte Felder wie boolean canFly. Das erste, wobei Vererbung hilft, ist das Vermeiden von doppelten Codefragmenten. Darüber hinaus wird die Lesbarkeit deutlich verbessert. In der Praxis begegnet man der Klasse Bird und ihren Unterklassen selten direkt, aber Vererbung wird häufig verwendet, insbesondere mit Interfaces.

Hinweis

Sie werden im nächsten Abschnitt dieses Kurses mehr über Interfaces erfahren.

Vererbungsregeln

  • Es kann nur eine Klasse geerbt werden. Java unterstützt keine Mehrfachvererbung. Eine Klasse kann nur eine Elternklasse haben;

  • Alles wird außer private-Variablen und -Methoden vererbt.

Hinweis

Sie können nicht von sich selbst erben!

Früher wurde erwähnt, dass eine Unterklasse Zugriff auf alle Variablen und Methoden der Elternklasse hat. Das ist jedoch nicht ganz korrekt.

Tatsächlich sind alle Methoden und Variablen, die mit dem private-Modifikator versehen sind, für die Unterklasse nicht zugänglich.

  • Überschreiben der Methode der Elternklasse.

Angenommen, eine geerbte Klasse enthält bestimmte Teile des Codes, die nicht gefallen. Es soll eine bestimmte Methode anders funktionieren als in der Elternklasse.

Um eine Methode der Elternklasse zu überschreiben, wird @Override darüber geschrieben:

Parrot.java

Parrot.java

copy
1234
@Override public void eat() { System.out.println("The parrot is eating"); }

Im obigen Code haben wir die Methode der Elternklasse überschrieben, und nun wird beim Aufruf dieser Methode aus der Kindklasse die überschriebene Methode ausgeführt!

  • Verhindern der Vererbung.

Wenn Sie nicht möchten, dass jemand Ihre Klasse erbt, verwenden Sie den final-Modifikator davor. Zum Beispiel:

Bird.java

Bird.java

Parrot.java

Parrot.java

copy
123
public final class Bird { // fields and methods }

Auf diese Weise haben wir durch die Verwendung des Schlüsselworts final die Vererbung der Klasse Bird untersagt.

Dies sind nur die grundlegenden Regeln und Merkmale der Vererbung. Es handelt sich um ein umfangreiches Thema, das sehr häufig verwendet wird. Im Verlauf des Kurses werden Sie mit weiteren Aspekten der Vererbung vertraut gemacht und diese häufiger anwenden.

1. Warum benötigen wir Vererbung in Java?

2. Von wie vielen Klassen können wir gleichzeitig erben?

3. Wie kann die Vererbung in Java verhindert werden?

question mark

Warum benötigen wir Vererbung in Java?

Select the correct answer

question mark

Von wie vielen Klassen können wir gleichzeitig erben?

Select the correct answer

question mark

Wie kann die Vererbung in Java verhindert werden?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 2

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Suggested prompts:

Can you explain how method overriding works in inheritance?

What is the difference between private and public fields in inheritance?

Why can't Java support multiple inheritance?

Awesome!

Completion rate improved to 4.76

bookOOP-Prinzipien: Vererbung

Swipe um das Menü anzuzeigen

Vererbung

Betrachten wir das OOP-Prinzip – Vererbung.

Vererbung ist ein Mechanismus, der die Erstellung von Klassen auf Basis einer anderen Klasse ermöglicht.

  • Die Klasse, die als Grundlage dient, wird als Elternklasse oder Superklasse bezeichnet;
  • Die auf Basis der Elternklasse erstellte Klasse wird als Kindklasse, Subklasse oder Nachfolger bezeichnet.

Somit kann die Kindklasse die Eigenschaften und Merkmale einer anderen Klasse – der Elternklasse (deren Methoden und Variablen) – erben.

Eine Klasse kann mit dem Schlüsselwort extends vererbt werden. Die Syntax für eine Kindklasse, die von einer Elternklasse erbt, sieht folgendermaßen aus:

Child.java

Child.java

copy
123
class Child extends Parent { // properties and methods }

Schauen wir uns ein Beispiel an, wie Vererbung im Code funktioniert. Wir haben eine Klasse Bird mit bestimmten Feldern und Methoden, und es gibt eine Klasse Parrot mit eigenen Feldern und Methoden. Ein Papagei ist ein Vogel, daher sollte der Papagei logisch von der Klasse Bird erben:

Hier ist der Code aus dem Screenshot, überarbeitet für bessere Lesbarkeit und Klarheit:

Bird.java

Bird.java

Parrot.java

Parrot.java

Main.java

Main.java

copy
12345678910111213141516171819
package animals.birds; public class Bird { public String color; public boolean canFly; public int maxAge; public void eat() { System.out.println("The bird is eating"); } public void fly() { if (canFly) { System.out.println("The bird is flying!"); } else { System.out.println("This bird can't fly :("); } } }

Lassen Sie uns verstehen, was auf diesen Abbildungen passiert:

  1. Es wird eine Klasse Bird erstellt, die in unserem Fall die Elternklasse ist. Diese Klasse besitzt eigene Felder und Methoden;
  2. Es wird eine Klasse Parrot erstellt, die mit dem Schlüsselwort extends von der Elternklasse Bird erbt. Die Klasse Parrot ist eine Kindklasse und verfügt über eigene Felder und Methoden. Zusätzlich erbt die Kindklasse Parrot alle Felder und Methoden der Elternklasse Bird;
  3. Im Parrot-Modul wird ein Objekt der Klasse main erstellt. Dabei kann man die Felder sowohl der Eltern- als auch der Kindklasse initialisieren. Zuerst werden die Felder der Elternklasse Bird initialisiert, anschließend die Felder der Kindklasse Parrot. Danach werden die Methoden aufgerufen: zuerst die Methoden der Elternklasse, dann die Methode der Kindklasse.

So wurde durch Vererbung die Klasse Bird geerbt.

Warum machen wir das?

Wenn es viele verschiedene Unterklassen von Bird gibt, nicht nur Parrot, sondern zum Beispiel auch Pigeon und Penguin, entstehen viele doppelte Felder wie boolean canFly. Das erste, wobei Vererbung hilft, ist das Vermeiden von doppelten Codefragmenten. Darüber hinaus wird die Lesbarkeit deutlich verbessert. In der Praxis begegnet man der Klasse Bird und ihren Unterklassen selten direkt, aber Vererbung wird häufig verwendet, insbesondere mit Interfaces.

Hinweis

Sie werden im nächsten Abschnitt dieses Kurses mehr über Interfaces erfahren.

Vererbungsregeln

  • Es kann nur eine Klasse geerbt werden. Java unterstützt keine Mehrfachvererbung. Eine Klasse kann nur eine Elternklasse haben;

  • Alles wird außer private-Variablen und -Methoden vererbt.

Hinweis

Sie können nicht von sich selbst erben!

Früher wurde erwähnt, dass eine Unterklasse Zugriff auf alle Variablen und Methoden der Elternklasse hat. Das ist jedoch nicht ganz korrekt.

Tatsächlich sind alle Methoden und Variablen, die mit dem private-Modifikator versehen sind, für die Unterklasse nicht zugänglich.

  • Überschreiben der Methode der Elternklasse.

Angenommen, eine geerbte Klasse enthält bestimmte Teile des Codes, die nicht gefallen. Es soll eine bestimmte Methode anders funktionieren als in der Elternklasse.

Um eine Methode der Elternklasse zu überschreiben, wird @Override darüber geschrieben:

Parrot.java

Parrot.java

copy
1234
@Override public void eat() { System.out.println("The parrot is eating"); }

Im obigen Code haben wir die Methode der Elternklasse überschrieben, und nun wird beim Aufruf dieser Methode aus der Kindklasse die überschriebene Methode ausgeführt!

  • Verhindern der Vererbung.

Wenn Sie nicht möchten, dass jemand Ihre Klasse erbt, verwenden Sie den final-Modifikator davor. Zum Beispiel:

Bird.java

Bird.java

Parrot.java

Parrot.java

copy
123
public final class Bird { // fields and methods }

Auf diese Weise haben wir durch die Verwendung des Schlüsselworts final die Vererbung der Klasse Bird untersagt.

Dies sind nur die grundlegenden Regeln und Merkmale der Vererbung. Es handelt sich um ein umfangreiches Thema, das sehr häufig verwendet wird. Im Verlauf des Kurses werden Sie mit weiteren Aspekten der Vererbung vertraut gemacht und diese häufiger anwenden.

1. Warum benötigen wir Vererbung in Java?

2. Von wie vielen Klassen können wir gleichzeitig erben?

3. Wie kann die Vererbung in Java verhindert werden?

question mark

Warum benötigen wir Vererbung in Java?

Select the correct answer

question mark

Von wie vielen Klassen können wir gleichzeitig erben?

Select the correct answer

question mark

Wie kann die Vererbung in Java verhindert werden?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 2
some-alt