Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Java-Kurs Übung Besprechung der Hausaufgabe Vererbung

Ähnliche Präsentationen


Präsentation zum Thema: "Java-Kurs Übung Besprechung der Hausaufgabe Vererbung"—  Präsentation transkript:

1 Java-Kurs - 10. Ü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
Geometrische_Figur 1dimensionale_Figur 2dimensionale_Figur Gerade_ Strecke Spline Kreis-bogen Polygon Dreieck Viereck Rechteck Quadrat

5 Methoden Methode zeichne() Geometrische_Figur 1dimensionale_Figur
Gerade_ Strecke Spline Kreis-bogen Polygon Dreieck Viereck Methode zeichne() Rechteck Quadrat

6 Methoden Methode umfang() Geometrische_Figur 1dimensionale_Figur
Gerade_ Strecke Spline Kreis-bogen Polygon Dreieck Viereck Rechteck Methode umfang() Quadrat

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 Übung Besprechung der Hausaufgabe Vererbung"

Ähnliche Präsentationen


Google-Anzeigen