Gemeinsamer Datentyp durch Vererbung: Unterschied zwischen den Versionen
Aus FI-Wiki
Die Seite wurde neu angelegt: „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, Motorra…“ |
|||
| (3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
In der objektorientierten Programmierung ermöglicht eine '''Oberklasse''' (Superklasse), dass verschiedene '''Kindklassen''' einen gemeinsamen Datentyp besitzen. | In der objektorientierten Programmierung ermöglicht eine '''Oberklasse''' (Superklasse), dass verschiedene '''Kindklassen''' einen gemeinsamen Datentyp besitzen. | ||
Dies ist eine zentrale Grundlage für '''Polymorphie'''. | Dies ist eine zentrale Grundlage für '''[[Polymorphie]]'''. | ||
== Grundidee == | == Grundidee == | ||
| Zeile 24: | Zeile 24: | ||
class Auto extends Fahrzeug { | class Auto extends Fahrzeug { | ||
void fahren() { | void fahren() { | ||
System.out.println("Auto fährt"); | System.out.println("Auto fährt"); | ||
} | } | ||
} | } | ||
class Motorrad extends Fahrzeug { | class Motorrad extends Fahrzeug { | ||
void fahren() { | void fahren() { | ||
System.out.println("Motorrad fährt"); | System.out.println("Motorrad fährt"); | ||
} | } | ||
} </syntaxhighlight> | } </syntaxhighlight> | ||
| Zeile 48: | Zeile 48: | ||
* Einheitlicher Datentyp für verschiedene Objekte | * Einheitlicher Datentyp für verschiedene Objekte | ||
* Vereinfachte Verarbeitung (z. B. in Arrays oder Listen) | * Vereinfachte Verarbeitung (z. B. in Arrays oder Listen) | ||
* Grundlage für Polymorphie | * Grundlage für [[Polymorphie]] | ||
* Erweiterbarkeit durch neue Kindklassen | * Erweiterbarkeit durch neue Kindklassen | ||
| Zeile 59: | Zeile 59: | ||
for (Fahrzeug f : fahrzeuge) { | for (Fahrzeug f : fahrzeuge) { | ||
f.fahren(); | f.fahren(); | ||
} </syntaxhighlight> | } </syntaxhighlight> | ||
Aktuelle Version vom 8. April 2026, 08:59 Uhr
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.
