Zurück zu Java

Java

Vererbung

Vererbung teilt gemeinsames Verhalten: Eine Unterklasse erbt Felder und Methoden und ergänzt Eigenes.

extends und super

extends macht eine Klasse zur Unterklasse einer anderen.

super(...) ruft den Konstruktor der Elternklasse auf und steht als erste Anweisung im Konstruktor.

<extends><super>
Ableitung
public class Fahrzeug {
    protected int tempo;

    public void fahre() {
        System.out.println("Faehrt mit " + tempo);
    }
}

public class Auto extends Fahrzeug {
    public Auto() {
        this.tempo = 120;
    }
}

Überschreiben

@Override markiert eine Methode, die Verhalten der Elternklasse ersetzt. Der Compiler prüft die Signatur.

Polymorphie: Eine Fahrzeug-Variable kann ein Auto halten — aufgerufen wird die Auto-Version der Methode.

<@Override><polymorphism>
Override
public class Auto extends Fahrzeug {
    @Override
    public void fahre() {
        System.out.println("Auto fährt auf der Straße");
    }
}

Fahrzeug f = new Auto();
f.fahre(); // "Auto fährt auf der Straße"

Grenzen der Vererbung

Java erlaubt nur eine direkte Elternklasse. Für mehrere Verträge gibt es Interfaces.

Tiefe Vererbungshierarchien werden schnell unübersichtlich — Komposition ist oft die bessere Wahl.

<final><composition>

Fortschritt

Markiere die Lektion als abgeschlossen, um XP und Streak zu erhalten.