Vererbung der Klassen in Java
Bis
jetzt haben wir Klassen entwickelt welche Werte mit Primitiven
Datentypen verarbeiten konnten. Jedoch werden wir Heute uns mit der
Vererbung von Klassen beschäftigen. Als erstes wollen wir uns mit
dem Begriff erben auf englisch extends auseinandersetzen.
Eines
der wesentlichen Designmerkmale objektorientierter Sprachen ist die
Möglichkeit, Variablen und Methoden zu Klassen zusammenzufassen. Ein
weiteres, wichtiges Merkmal, ist das der Vererbung, also der
Möglichkeit, Eigenschaften vorhandener Klassen auf neue Klassen zu
übertragen.
Man
unterscheidet dabei zwischen einfacher Vererbung, bei der eine Klasse
von maximal einer anderen Klasse abgeleitet werden kann, und
Mehrfachvererbung, bei der eine Klasse von mehr als einer anderen
Klasse abgeleitet werden kann. In Java gibt es lediglich
Einfachvererbung, um den Problemen aus dem Weg zu gehen, die durch
Mehrfachvererbung entstehen können.
Wir
werden zunächst ein sehr einfaches Beispiel verwenden welches nur
zur Übersicht dienen wird.
01 public
class
Auto
{
02 public
static void
main(String[]
args) {
03 Cabrio kfz1 =
new
Cabrio();
04 kfz1.name
= "MAZDA MX5";
05 kfz1.erstzulassung
=
1994;
06 kfz1.leistung
= 120;
07 kfz1.vdauer
= 150;
08 kfz1.alter
=
(2017 - 1994);
09
10 ZweiSitzerCabrio kfz2 =
new
ZweiSitzerCabrio();
11 kfz2.alter
= (2017 - 1982);
12 kfz2.erstzulassung
= 1982;
13 kfz2.leistung
=
265;
14 kfz2.vdauer
=
310;
15 kfz2.notsitze
=
true;
16 kfz2.name
=
"PORSCHE 911 TURBO";
17
18 System.out.println("-------------ERSTES
AUTO--------------");
19 System.out.println("Alter
= "+kfz1.alter);
20 System.out.println("Max
V = "+kfz1.vdauer+"
km/h");
21 System.out.println("Leistung
= "+kfz1.leistung+"
PS");
22 System.out.println("Erstzulassung
= "+kfz1.erstzulassung);
23 System.out.println("Marke
= "+kfz1.name);
24 System.out.println("--------------------------------------");
25 System.out.println("");
26
27 System.out.println("-------------ZWEITES
AUTO-------------");
28 System.out.println("Alter
= "+kfz2.alter);
29 System.out.println("Max
V = "+kfz2.vdauer+"
km/h");
30 System.out.println("Leistung
= "+kfz2.leistung+"
PS");
31 System.out.println("Erstzulassung
= "+kfz2.erstzulassung);
32 System.out.println("Marke
= "+kfz2.name);
33 System.out.println("--------------------------------------");
34 System.out.println("");
35 }
36 }
01
public
class
Cabrio
extends
Auto {
02
03 int
vdauer;
04 String name;
05 int
erstzulassung;
06 int
leistung;
07 byte
alter;
08
09
}
01
public
class
ZweiSitzerCabrio
extends
Cabrio
{
02
03 boolean
notsitze;
04 int
vdauer;
05 String name;
06 int
erstzulassung;
07 int
leistung;
08 byte
alter;
09
10
}
Bei
unserem Programm welches Sie womöglich kompiliert haben werden Sie
feststellen, dass diese einfache Vererbung ohne das Schlüsselwort
extends auch funktionieren würde.
Die
erste Klasse mit dem Namen Auto
beinhaltet die Main-Methode. Diese Klasse ist also unsere
Mutterklasse der beiden anderen Nebenklassen.
Die
beiden Nebenklassen ZweiSitzerCabrio
und
Cabrio erben
der Mutterklasse
Auto.
Wir
haben bei der zweiten Klasse Cabrio fünf Variablen initialisiert.
Ebenfalls werden für die Klasse ZweiSitzerCabrio sechs Klassen
initialisiert. Wir sagen dem Übersetzer also dem Compiler, dass die
folgenden Werte der Klasse Cabrio und ZweiSitzerCabrio der Klasse
Auto erben.
Zwischen
der Zeile 3 bis 16 werden die Variablen der beiden Klassen mit
mathematischen Werten und Namen deklariert.
Zwischen
der Zeile 18 - 34 werden die Informationen der beiden Autos in der
Konsole ausgegeben.
Die
Ausgabe lautet wie folgt:
-------------ERSTES
AUTO--------------
Alter
= 23
Max
V = 150 km/h
Leistung
= 120 PS
Erstzulassung =
1994
Marke
= MAZDA MX5
--------------------------------------
-------------ZWEITES
AUTO-------------
Alter
= 35
Max
V = 310 km/h
Leistung
= 265 PS
Erstzulassung =
1982
Marke
= PORSCHE 911 TURBO
--------------------------------------
Kommentare
Kommentar veröffentlichen