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

Beliebte Posts aus diesem Blog

How can I transform a .jar file to a .bat file?

Ein Kleines Spiel mit Altersabfrage

Zufallszahlen und Verzweigungen in Python