Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Java-Kurs - 10. Übung Besprechung der Hausaufgabe Vererbung Konstruktoren (Methode super) Polymorphismus Dynamisches Binden Abstrakte Klassen.

Ähnliche Präsentationen


Präsentation zum Thema: "Java-Kurs - 10. Übung Besprechung der Hausaufgabe Vererbung Konstruktoren (Methode super) Polymorphismus Dynamisches Binden Abstrakte Klassen."—  Präsentation transkript:

1 Java-Kurs Übung Besprechung der Hausaufgabe Vererbung Konstruktoren (Methode super) Polymorphismus Dynamisches Binden Abstrakte Klassen

2 Methode "super" Problem: Wiederholung der Initialisierung für Person im Konstruktor von Dozent (Unterklasse von Person ) Sinnvoll: Nutzung des Konstruktors von Person im Konstruktor von Dozent Methode super dient zum Aufruf des Konstruktors der Oberklasse

3 Methode super: Beispiel class Dozent extends Person { String institut; //Konstruktor Dozent(String vorname, String nachname, String inst) { super(vorname,nachname); //Konstruktor von Person institut = inst; }

4 Beispiel zur Klassenhierarchie 1dimensionale_Figur Geometrische_Figur Gerade_ Strecke 2dimensionale_Figur SplineKreis- bogen Dreieck Viereck RechteckQuadrat Polygon

5 Methoden 1dimensionale_Figur Geometrische_Figur Gerade_ Strecke 2dimensionale_Figur SplineKreis- bogen Dreieck Viereck RechteckQuadrat Polygon Methode zeichne()

6 Methoden 1dimensionale_Figur Geometrische_Figur Gerade_ Strecke 2dimensionale_Figur SplineKreis- bogen Dreieck Viereck RechteckQuadrat Polygon Methode umfang()

7 Polymorphismus Eine Klassenvariable kann Objekte von Unterklassen aufnehmen Beispiel (Geometrische Figuren): Geometrische_Figur g1, g2; g1 = new Dreieck(); g2 = new Quadrat(); Es können nur die Methoden der Klassenvariablen aufgerufen werden: g1.zeichne(); //aus Geometrische_Fig. g1.umfang(); //geht nicht; nur bei 2D

8 Polymorphismus Eine Klassenvariable kann keine Objekte von Oberklassen aufnehmen Beispiel: Quadrat q; q = new Geometrische_Figur();//Fehler q.umfang(); //Fehler Für q ist der Aufruf q.umfang() zulässig, umfang() gibt es aber bei Geometrische_Figur nicht.

9 Dynamisches Binden Bei Polymorphismus wird erst zur Laufzeit entscheiden, welche Methode verwendet wird Beispiel: Geometrische_Figur[] g = new...; g[0] = new Dreieck(); g[1] = new Quadrat(); g[2] = new Rechteck();...; for(int i = 0; i < n ; i = i+1) {g[i].zeichne(); }

10 Abstrakte Klassen Problem I: Geometrische_Figur g; g = new Geometrische_Figur(); Problem II: Wie ist zeichne() in Klasse Geometrische_Figur implementiert? Lösung: Abstrakte Klassen Es dürfen keine Instanzen erzeugt werden Hat mindestens eine abstrakte Methode (Methode ohne Implementierung) Abstrakte Methode muss in Unterklasse implementiert sein

11 Abstrakte Klassen: Syntax abstract class Geometrische_Figur{..... abstract void zeichne();... }

12 Hausaufgabe 9 Implementieren Sie die drei Klassen Polygon, Dreieck und Rechteck aus dem UML-Diagramm. Polygon soll eine Abstrakte Klasse sein. Erweitern Sie jede der drei Klassen um die Methode umfang(). Diese ist bei Polygon abstrakt. Erzeugen Sie ein Array, das Dreiecke und Rechtecke enthält. Berechnen Sie die Summe der Umfänge aller Dreiecke und Rechtecke im Array. Dreieck Rechteck Polygon


Herunterladen ppt "Java-Kurs - 10. Übung Besprechung der Hausaufgabe Vererbung Konstruktoren (Methode super) Polymorphismus Dynamisches Binden Abstrakte Klassen."

Ähnliche Präsentationen


Google-Anzeigen