Kursinhalt
Java OOP
Java OOP
OOP-Prinzipien: Inheritance
Vererbung
Lasst uns über das Prinzip der OOP sprechen – Vererbung.
Vererbung ist ein Mechanismus, der die Erstellung von Klassen basierend auf einer anderen Klasse ermöglicht.
- Die Klasse, die als Basis dient, wird als Elternklasse oder Superklasse bezeichnet;
- Die auf der Elternklasse basierende Klasse wird als Kindklasse, Subklasse oder Abkömmling bezeichnet.
Somit kann die Kindklasse die Eigenschaften und Merkmale einer anderen Klasse – der Elternklasse (ihre Methoden und Variablen) – erben.
Du kannst eine Klasse mit dem Schlüsselwort extends
erben. Die Syntax für eine Kindklasse, die von einer Elternklasse erbt, sieht folgendermaßen aus:
Child
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 Felder und Methoden, und es gibt eine Klasse Parrot
mit eigenen Felder und Methoden. Ein Papagei ist ein Vogel, also sollte logischerweise der Papagei von der Klasse Bird
erben:
Lassen Sie uns verstehen, was auf diesen Bildern passiert:
- Wir erstellen eine Klasse
Bird
, die in unserem Fall die Elternklasse ist. Diese Klasse hat eigene Felder und Methoden; - Wir erstellen eine Klasse
Parrot
, die das Schlüsselwortextends
verwendet, um von der ElternklasseBird
zu erben. Die KlasseParrot
ist eine Kindklasse und verfügt über eigene Felder und Methoden. Zusätzlich erbtParrot
als Kindklasse alle Felder und Methoden der ElternklasseBird
; - Wir erstellen ein Objekt der Klasse
Parrot
in dermain
-Methode und sehen, dass wir die Felder sowohl der Eltern- als auch der Kindklasse initialisieren können. Zuerst initialisieren wir die Felder der ElternklasseBird
und dann die Felder der KindklasseParrot
. Anschließend rufen wir die Methoden auf: zuerst die Methoden der Elternklasse und danach die Methode der Kindklasse.
Damit haben wir Vererbung genutzt, um die Klasse Bird
zu erben.
Warum machen wir das?
Wenn wir viele verschiedene Unterklassen von Bird
haben, nicht nur Parrot
, zum Beispiel gibt es auch Pigeon
und Penguin
, dann hätten wir viele duplizierte Felder, wie etwa boolean canFly
. Das erste, was uns die Vererbung hilft, ist, duplizierte Codeabschnitte zu vermeiden.
Zudem verbessert sie erheblich die Lesbarkeit. In der Praxis begegnet man selten direkt der Klasse Bird
und ihren Unterklassen, aber Vererbung wird häufig verwendet, insbesondere in Verbindung mit Schnittstellen.
Note
Im nächsten Abschnitt dieses Kurses werden Sie etwas über Schnittstellen lernen.
Vererbungsregeln
-
Von nur einer Klasse erben. Java unterstützt keine Mehrfachvererbung. Eine Klasse kann nur einen Elternteil haben;
-
Alles wird vererbt außer
private
Variablen und Methoden.
Note
Man kann nicht von sich selbst erben!
Zuvor erwähnte ich, dass eine Unterklasse Zugriff auf alle Variablen und Methoden der Elternklasse hätte. Das ist jedoch nicht ganz richtig.
Tatsächlich sind alle Methoden und Variablen, die mit dem private
Modifier markiert sind, für die Unterklasse nicht zugänglich.
- Überschreiben der Methode der Elternklasse.
Stellen Sie sich vor, wir erben eine Klasse, aber es gibt bestimmte Teile des geerbten Codes, die uns nicht gefallen. Angenommen, wir möchten, dass eine bestimmte Methode anders arbeitet als in der Elternklasse.
Um eine Methode aus der Elternklasse zu überschreiben, schreiben wir @Override
darüber:
Parrot
@Override public void eat() { System.out.println("The parrot is eating"); }
Im obigen Code haben wir die Methode der Eltern-Klasse überschrieben, und nun, wenn diese Methode aus der Kind-Klasse aufgerufen wird, wird die überschriebene Methode ausgeführt!
- Vererbung verhindern.
Wenn du nicht möchtest, dass jemand deine Klasse erbt, verwende den final
Modifier davor.
Zum Beispiel:
Bird
Parrot
public final class Bird { // fields and methods }
Auf diese Weise haben wir durch die Verwendung des Schlüsselworts final
die Vererbung der Bird
-Klasse unterbunden.
Dies sind nur die grundlegenden Regeln und Merkmale der Vererbung. Es ist ein weites Thema, und du wirst es sehr häufig verwenden. Im Laufe des Kurses wirst du mit weiteren Aspekten der Vererbung vertraut werden und sie häufiger einsetzen.
1. Warum benötigen wir Vererbung in Java?
2. Von wie vielen Klassen können wir gleichzeitig erben?
3. Wie können wir Vererbung in Java verhindern?
Danke für Ihr Feedback!