Direkt zum Inhalt
Urkunden
Java SchlüsselwörterJava-ArraysJava Objektorientierte ProgrammierungJava File HandlingEinführung in JavaGrundlagen der Java-Sprache

Java Inheritance

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


class Superclass {
    // fields and methods
}

class Subclass extends Superclass {
    // additional fields and methods
}

Beispiele

Beispiel 1: Grundlegende Vererbung


class Animal {
    void eat() {
        System.out.println("This animal eats food.");
    }
}

class Dog extends Animal {
    void bark() {
        System.out.println("The dog barks.");
    }
}

public class InheritanceExample {
    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.eat();  // Inherited method
        dog.bark(); // Subclass method
    }
}

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


class Vehicle {
    void run() {
        System.out.println("The vehicle is running.");
    }
}

class Car extends Vehicle {
    @Override
    void run() {
        System.out.println("The car is running safely.");
    }
}

public class MethodOverridingExample {
    public static void main(String[] args) {
        Car car = new Car();
        car.run(); // Overridden method
    }
}

Hier überschreibt die Klasse Car die Methode run der Klasse Vehicle, um eine spezielle Implementierung zu ermöglichen.

Beispiel 3: Mit super Schlüsselwort


class Person {
    String name = "John";

    void display() {
        System.out.println("Person's name: " + name);
    }
}

class Employee extends Person {
    String name = "Doe";

    void display() {
        System.out.println("Employee's name: " + name);
        super.display(); // Call superclass method
    }
}

public class SuperKeywordExample {
    public static void main(String[] args) {
        Employee emp = new Employee();
        emp.display();
    }
}

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 Grundlagen lernen

Baue deine Java-Kenntnisse von Grund auf auf und beherrsche Programmierkonzepte.
Kostenloses Lernen beginnen