1 / 12

Java-Kurs - 10. Übung

Java-Kurs - 10. Übung. Besprechung der Hausaufgabe Vererbung Konstruktoren (Methode super) Polymorphismus Dynamisches Binden Abstrakte Klassen. Methode "super". Problem: Wiederholung der Initialisierung für Person im Konstruktor von Dozent (Unterklasse von Person )

loring
Download Presentation

Java-Kurs - 10. Übung

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. Gerade_ Strecke Spline Kreis-bogen Dreieck Polygon Viereck Rechteck Quadrat Beispiel zur Klassenhierarchie Geometrische_Figur 2dimensionale_Figur 1dimensionale_Figur

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

  6. Gerade_ Strecke Spline Kreis-bogen Dreieck Polygon Viereck Rechteck Quadrat Methoden Geometrische_Figur 2dimensionale_Figur 1dimensionale_Figur 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();//Fehlerq.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. Dreieck Polygon Rechteck 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.

More Related