Vererbung: Unterschied zwischen den Versionen

Aus FI-Wiki
Keine Bearbeitungszusammenfassung
 
Zeile 63: Zeile 63:
== Kurzmerksatz ==
== Kurzmerksatz ==
'''Vererbung ermöglicht Code-Wiederverwendung und Spezialisierung.   
'''Vererbung ermöglicht Code-Wiederverwendung und Spezialisierung.   
protected erlaubt Unterklassen den Zugriff auf geerbte Elemente, ohne sie öffentlich zu machen.'''
Die Sichbarkeit '''protected''' erlaubt Unterklassen den Zugriff auf geerbte Elemente, ohne sie öffentlich zu machen.'''

Aktuelle Version vom 12. Januar 2026, 14:46 Uhr

Die Vererbung ist ein grundlegendes Prinzip der objektorientierten Programmierung. Sie ermöglicht es, dass eine Klasse (Unterklasse) die Eigenschaften und Methoden einer anderen Klasse (Basisklasse) übernimmt. Dadurch können gemeinsame Funktionen einmal definiert und von mehreren Klassen genutzt oder erweitert werden.

Grundidee

Eine Basisklasse stellt allgemeine Attribute und Methoden bereit. Eine Unterklasse erbt diese und kann zusätzlich eigene Funktionen hinzufügen oder geerbtes Verhalten überschreiben.

Beispielidee:

  • Basisklasse: Fahrzeug
  • Unterklasse: Auto
  • Unterklasse: Motorrad

Beispiel im Code

class Fahrzeug {
    int geschwindigkeit;
    void fahren() { System.out.println("Fahrzeug fährt"); }
}

class Auto extends Fahrzeug {
    void hupen() { System.out.println("Hupe!"); }
}

Die Klasse Auto erbt geschwindigkeit und fahren() von Fahrzeug.

Das Schlüsselwort extends

Vererbung wird in Java mit dem Schlüsselwort extends definiert:

class Unterklasse extends Basisklasse { }

protected in der Vererbung

Das Zugriffsmodifikator protected spielt eine wichtige Rolle bei der Vererbung:

  • protected erlaubt Zugriff **innerhalb der Klasse**,
  • **innerhalb desselben Pakets**,
  • und – am wichtigsten – durch **Unterklassen**, auch wenn sie in einem anderen Paket liegen.

Dadurch können geerbte Eigenschaften geschützt, aber trotzdem vererbbar und nutzbar bleiben.

Beispiel:

class Fahrzeug {
    protected int geschwindigkeit;  // Unterklassen dürfen zugreifen
}

class Auto extends Fahrzeug {
    void beschleunigen() {
        geschwindigkeit += 10;      // erlaubt, weil protected
    }
}

Vorteile der Vererbung

  • vermeidet doppelten Code
  • schafft übersichtliche Klassenhierarchien
  • Unterklassen können Verhalten anpassen (Methoden überschreiben)
  • erleichtert Wartbarkeit und Erweiterbarkeit

Kurzmerksatz

Vererbung ermöglicht Code-Wiederverwendung und Spezialisierung. Die Sichbarkeit protected erlaubt Unterklassen den Zugriff auf geerbte Elemente, ohne sie öffentlich zu machen.