Klassen könnne von anderen Klassen erben. Das bedeutet, dass sie alle Methoden und Attribute der Elternklasse übernehmen. Vererbung ist ein zentrales Merkmal der objektorientierten Programmierung. Es hilft bereits vorhandene Klassen zu nutzen und erspart einem, den gleich Quelltext für eine ähnliche Klasse noch einmal schreiben zu müssen.
Im Klassendiagramm wird das Erben von einer Klasse durch einen ausgehenden Pfeil mit geschlossener
Pfeilspitze dargestellt.
Für die erbende Klasse - auch Unterklasse genannt - sagt man auch, dass sie die
Elternklasse erweitert, also von ihr erbt. Mit dem Begriff 'erweitert' wird
beschrieben, dass sie alle Attribute und Methoden der Elternklasse besitzt, sie aber auch noch
weitere besitzen kann. Zudem kann sie Methoden, die sie erbt auch noch einmal neu definieren. Man sagt
dass die Unterklasse eine
Methode überschreibt.
Die folgende Implementierung zeigt dies:
Beantworte folgende Fragen mit geeigneten Fachbegriffen.
Gegeben ist folgendes Klassendiagramm:
class Fahrzeug { double preis; String hersteller; double geschwindigkeit; void fahre() { println("Das Fahrzeug fährt..."); } void erhöheGeschwindigkeit(int wert) { geschwindigkeit += wert; } double gibPreis() { return preis; } } class Auto extends Fahrzeug { double leistung; String kennzeichen; boolean istElektrisch; void fahre() { println("Das Auto macht brumm, brumm..."); } void hupe() { println("Tut, tut!!!"); } } class Fahrrad extends Fahrzeug { int anzahlGänge; void fahre() { println("Das Fahrrad rollt vor sich hin..."); } void klingle() { println("Klingeling..."); } } // Test Fahrzeug f1 = new Fahrzeug(); f1.fahre(); Auto a1 = new Auto(); a1.erhöheGeschwindigkeit(12); a1.fahre(); a1.hupe(); Fahrrad fa1 = new Fahrrad(); fa1.preis = 199.90; fa1.fahre(); fa1.klingle();