Subtyping

Wie wir gelernt haben, definiert jede Klasse in Java auch einen Variablentyp - in diesem Sinne definiert jede Subklasse einen Subtyp.

Um Beispielsweise einen Fuhrpark zu modellieren, kann die folgende Klassenhierarchie zum Einsatz kommen:

Wir definieren zunächst eine Basisklasse Fahrzeug, die als Oberklasse für die anderen Klassen dienen soll

Ein Zweirad ist ein Fahrzeug mit 2 Rädern.

Ein Tretroller ist ein Zweirad mit Höchstgeschwindigkeit 12km/h

Ein Fahrrad ist ein Zweirad, mit Maximalgeschwindigkeit 30 km/h.

Ein Auto ist ein Fahrzeug mit 4 Rädern und Maximalgeschwindigkeit 140 km/h.

Ein Rennwagen ist ein Auto mit Maximalgeschwindigkeit 220 km/h.

Ein Lastwagen ist ein Auto mit dem zusätzlichen Attribut Ladung.

Unter dem Begriff Polymorphie versteht man bei Variablen, dass eine Variable vom Typ einer Oberklasse auch Werte von Typ ihrer Subklassen halten kann. Man spricht von Variablenpolymorphie.Polymorphie bedeutet "Vielgestaltigkeit" und tritt in der OOP noch in anderen Zusammenhängen auf, wie wir sehen werden.

Beispiel:

Filename	Filesize	Last modified
fuhrpark.png	24.6 KiB	19.03.2024 08:51
kap10_04subtyping.odp	1.4 MiB	22.11.2021 20:25
kap10_04subtyping.pdf	224.5 KiB	22.11.2021 20:25