Sobes.tech
Junior

Wie nutzt eine abgeleitete Klasse die Funktionalität der Elternklasse?

sobes.tech KI

Antwort von AI

Durch Vererbung: Die abgeleitete Klasse erhält die öffentlichen und geschützten Mitglieder der Basisklasse.

  • Direkter Zugriff: Auf die öffentlichen und geschützten Felder und Methoden der Basisklasse kann innerhalb der abgeleiteten Klasse direkt über ihren Namen zugegriffen werden.
  • Schlüsselwort super: Wird verwendet, um den Konstruktor der Basisklasse aufzurufen oder um auf überschriebenen Methoden/Felder der Basisklasse zuzugreifen, wenn in der abgeleiteten Klasse Mitglieder mit demselben Namen vorhanden sind.
  • Überschreiben (overriding): Die Methoden der Basisklasse (die nicht final sind) können in der abgeleiteten Klasse überschrieben werden, um ihr Verhalten zu ändern.
// Beispiel für eine Basisklasse
class Parent {
    protected int parentValue;

    public Parent(int value) {
        this.parentValue = value;
    }

    public void displayParentValue() {
        System.out.println("Elternwert: " + parentValue);
    }

    public final void cannotBeOverridden() {
        System.out.println("Diese Methode kann nicht überschrieben werden.");
    }
}

// Beispiel für eine abgeleitete Klasse
class Child extends Parent {
    private int childValue;

    public Child(int parentValue, int childValue) {
        super(parentValue); // Aufruf des Konstruktors der Basisklasse
        this.childValue = childValue;
    }

    // Überschreiben der Methode der Basisklasse
    @Override
    public void displayParentValue() {
        System.out.println("Überschriebener Elternwert: " + parentValue); // Zugriff auf das geschützte Feld des Elternteils
    }

    public void displayChildValue() {
        System.out.println("Kind-Wert: " + childValue);
    }

    public void callParentMethod() {
        super.displayParentValue(); // Aufruf der Methode der Basisklasse via super
    }
}