Java Vererbung erklärt: Typen, Syntax und praktische Beispiele
Was ist Vererbung?
Vererbung ist ein Kernkonzept der objektorientierten Programmierung, das es einer Klasse ermöglicht, Felder und Methoden einer anderen zu erwerben. Man kann es sich als Kind vorstellen, das Merkmale von seinen Eltern erbt. Durch die Wiederverwendung bestehenden Codes fördert Vererbung Wiederverwendbarkeit und vereinfacht die Wartung.
Dieser Leitfaden behandelt:
- Vererbungstypen in Java
- Wie Vererbung in Java funktioniert
- Schritt-für-Schritt Java-Beispiele
- Verwendung des
super-Schlüsselworts - Reale OOP-Szenarien
Typen der Vererbung
Java unterstützt mehrere Vererbungsmuster, die jeweils für unterschiedliche Designanforderungen geeignet sind.
Einfache Vererbung
Eine Klasse erweitert eine andere und bildet eine einfache Eltern-Kind-Beziehung.
Mehrfachvererbung
Während Java selbst nicht erlaubt, dass eine Klasse mehrere Klassen erweitert, hilft das Verständnis des Konzepts bei der Verwendung von Interfaces.
Mehrebenen-Vererbung
Vererbungsketten können sich über mehrere Ebenen erstrecken: Eine Unterklasse kann selbst Superklasse für eine andere Klasse sein.
Hierarchische Vererbung
Eine Superklasse kann mehrere Unterklassen hervorbringen.
Hybridvererbung
Hybridvererbung kombiniert einfache und mehrfache Vererbungsmuster. Obwohl Java dies nicht direkt unterstützt, ist das Konzept nützlich beim Entwerfen komplexer Hierarchien mit Interfaces.
Hinweis: Java unterstützt keine hybride oder mehrfache Vererbung für Klassen.
Vererbung in Java
In Java wird eine Is-A-Beziehung durch Vererbung ausgedrückt. Das extends-Schlüsselwort signalisiert, dass eine Unterklasse von einer Superklasse erbt.
Typische Syntax:
class SubKlasse extends SuperKlasse {
// Methoden und Felder
}
Java Vererbungsbeispiel
Nachfolgend eine prägnante Illustration von Vererbung in Aktion.
class Doctor {
void doctorDetails() {
System.out.println("Doctor Details...");
}
}
class Surgeon extends Doctor {
void surgeonDetails() {
System.out.println("Surgeon Detail...");
}
}
public class Hospital {
public static void main(String[] args) {
Surgeon s = new Surgeon();
s.doctorDetails();
s.surgeonDetails();
}
}
Verwendung des super-Schlüsselworts
this, aber für Elternelemente.
Es kann mit Variablen, Methoden und Konstruktoren verwendet werden.
Syntax-Beispiel:
super.methodeName();
Vererbung in Aktion: Ein Bankenszenario
Betrachten Sie eine Bankanwendung, die mehrere Kontotypen unterstützt. In einem strukturierten Ansatz würden Sie separate Funktionen für gemeinsame Aktionen wie deposit und withdraw schreiben.
Mit OOP definieren Sie eine Basis-Account-Klasse mit gemeinsamem Verhalten und erweitern sie für spezifische Kontotypen.
Überziehungsfunktion hinzufügen
Wenn sich die Anforderung ändert, eine Überziehungsfunktion hinzuzufügen, muss der strukturierte Code geändert werden. Im Gegensatz dazu erlaubt OOP, eine neue Unterklasse zu erstellen, die die einzigartige withdraw-Logik implementiert, ohne den getesteten Basiscode anzufassen.
Kreditkartenkonto hinzufügen
Ebenso ist die Einführung eines Kreditkartenkontos mit einzigartigen Einzahlungsregeln in OOP unkompliziert: Erweitern Sie einfach die Basisklasse mit spezialisiertem Verhalten.
Vorteile der Vererbung in OOP
Vererbung eliminiert Code-Duplikation, indem sie gemeinsame Logik in einer Elternklasse platziert. Kindklassen erben deposit und withdraw Methoden, was den Wartungsaufwand reduziert.
Java
- Java-Vererbung meistern: Konzepte, Typen und praktische Beispiele
- C# Interfaces verstehen: Definition, Beispiel und praktische Anwendung
- Java OOP-Konzepte: Grundlagen, Beispiele und Vorteile
- Kapselung in Java: Umfassender Leitfaden mit praktischem Beispiel
- Java String length() Methode: String-Länge ermitteln (Beispiel)
- Java String.charAt(): Syntax, Rückgabetyp, Exceptions und praktisches Beispiel
- Java String.contains() Methode: Substrings prüfen – praktische Beispiele
- Java String.endsWith(): String-Suffixe prüfen mit Beispielen
- Dateien in Java mit BufferedReader lesen – Praktischer Leitfaden mit Beispielen
- Insertion Sort Algorithmus in Java: Klares Beispiel & Schritt-für-Schritt-Anleitung