Gemeinsamer Datentyp durch Vererbung

Aus FI-Wiki

In der objektorientierten Programmierung ermöglicht eine Oberklasse (Superklasse), dass verschiedene Kindklassen einen gemeinsamen Datentyp besitzen. Dies ist eine zentrale Grundlage für Polymorphie.

Grundidee

Alle Kindklassen erben von einer gemeinsamen Oberklasse. Dadurch können Objekte der Kindklassen über den Datentyp der Oberklasse angesprochen werden.

Beispiel:

  • Oberklasse: Fahrzeug
  • Kindklassen: Auto, Motorrad

Ein Objekt vom Typ Auto kann auch als Fahrzeug behandelt werden.

Beispiel in Java

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

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

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

Verwendung eines gemeinsamen Datentyps

Fahrzeug f1 = new Auto();
Fahrzeug f2 = new Motorrad();

f1.fahren(); // Ausgabe: Auto fährt
f2.fahren(); // Ausgabe: Motorrad fährt

Vorteile

  • Einheitlicher Datentyp für verschiedene Objekte
  • Vereinfachte Verarbeitung (z. B. in Arrays oder Listen)
  • Grundlage für Polymorphie
  • Erweiterbarkeit durch neue Kindklassen

Beispiel mit Array

Fahrzeug[] fahrzeuge = new Fahrzeug[2];
fahrzeuge[0] = new Auto();
fahrzeuge[1] = new Motorrad();

for (Fahrzeug f : fahrzeuge) {
f.fahren();
}

Wichtiger Hinweis

Es können nur Methoden aufgerufen werden, die in der Oberklasse definiert sind. Spezielle Methoden der Kindklassen sind nur nach einem Cast zugänglich.

Kurzmerksatz

Gemeinsamer Datentyp bedeutet: Unterschiedliche Objekte können über ihre gemeinsame Oberklasse einheitlich behandelt werden.