13
Java-Kurs - 9. Übung Besprechung der Hausaufgabe Klassen und Objekte: Vererbung Konzeptueller Hintergrund: Spezialisierung Modellierung mittels UML Vererben von Variablen Vererben von Methoden Überlagerung von Methoden Zugriff auf überlagerte Methoden

Java-Kurs - 9. Übung Besprechung der Hausaufgabe Klassen und Objekte: Vererbung Konzeptueller Hintergrund: Spezialisierung Modellierung mittels UML Vererben

Embed Size (px)

Citation preview

Page 1: Java-Kurs - 9. Übung Besprechung der Hausaufgabe Klassen und Objekte: Vererbung Konzeptueller Hintergrund: Spezialisierung Modellierung mittels UML Vererben

Java-Kurs - 9. Übung• Besprechung der Hausaufgabe

• Klassen und Objekte: Vererbung• Konzeptueller Hintergrund: Spezialisierung• Modellierung mittels UML• Vererben von Variablen• Vererben von Methoden

• Überlagerung von Methoden• Zugriff auf überlagerte Methoden

Page 2: Java-Kurs - 9. Übung Besprechung der Hausaufgabe Klassen und Objekte: Vererbung Konzeptueller Hintergrund: Spezialisierung Modellierung mittels UML Vererben

Klassenhierarchien• konzeptueller Hintergrund:

Generalisierung Spezialisierung

• Spezifikation in UML (Unified Modeling Language):

AbstraktionUnterklasse 1(sp e z ie ll)

Unterklasse 2(sp e z ie ll)

Unterklasse 3(sp e z ie ll)

O berklasse(g e n e re ll)

spezieller

Page 3: Java-Kurs - 9. Übung Besprechung der Hausaufgabe Klassen und Objekte: Vererbung Konzeptueller Hintergrund: Spezialisierung Modellierung mittels UML Vererben

Beispiel zu Klassenhierarchiespezieller

Student Dozent Verwaltungs-angestellter

Person

Ordentlicher Student

Gasthörer

Page 4: Java-Kurs - 9. Übung Besprechung der Hausaufgabe Klassen und Objekte: Vererbung Konzeptueller Hintergrund: Spezialisierung Modellierung mittels UML Vererben

Beispiel zu Klassenhierarchie

1-dimensionale Figur

Geometrische Figur

gerade Strecke

2-dimensionale Figur

Spline Kreis-bogen

Dreieck Viereck

Rechteck

Quadrat

spezieller

Page 5: Java-Kurs - 9. Übung Besprechung der Hausaufgabe Klassen und Objekte: Vererbung Konzeptueller Hintergrund: Spezialisierung Modellierung mittels UML Vererben

Klassenhierarchien in Java

Syntax:

class Unterklasse extends Oberklasse { . . .}

Beispiel: class Person { . . .}

class Student extends Person { . . .}

Page 6: Java-Kurs - 9. Übung Besprechung der Hausaufgabe Klassen und Objekte: Vererbung Konzeptueller Hintergrund: Spezialisierung Modellierung mittels UML Vererben

Beispiel zu Klassenhierarchie

Student Dozent Verwaltungs-angestellter

Person

Ordentlicher Student

Gasthörer

class Student extends Person {...}class Dozent extends Person {...}class Gasthörer extends Student {...}

Page 7: Java-Kurs - 9. Übung Besprechung der Hausaufgabe Klassen und Objekte: Vererbung Konzeptueller Hintergrund: Spezialisierung Modellierung mittels UML Vererben

Vererbung

• Eine Unterklasse erbt alle Eigenschaften ihrer Oberklassen

Eine Unterklasse erbt alle Variablen ihrer Oberklassen

Eine Unterklasse erbt alle Methoden ihrer Oberklassen

Page 8: Java-Kurs - 9. Übung Besprechung der Hausaufgabe Klassen und Objekte: Vererbung Konzeptueller Hintergrund: Spezialisierung Modellierung mittels UML Vererben

Vererbung von Attributen und Methoden

class A { int aVar; void aMethode(){}}class B extends A{

int bVar; void bMethode(){}}class C extends B{

int cVar; void cMethode(){}}class d extends C{

int dVar;void dMethode(){}

}

aVar;aMethode()

aVar; bVar;aMethode() bMethode()

aVar; bVar; cVar;aMethode() bMethode() cMethode()

aVar; bVar; cVar; dVar;aMethode() bMethode() cMethode()

dMethode()

Page 9: Java-Kurs - 9. Übung Besprechung der Hausaufgabe Klassen und Objekte: Vererbung Konzeptueller Hintergrund: Spezialisierung Modellierung mittels UML Vererben

Variablen und Klassenhierarchie

• Eine Referenzvariable kann Objekte von Unterklassen aufnehmen• Beispiel:

class Polygon{ }class Rechteck extends Polygon{}

Polygon p;Rechteck r = new Rechteck();p = r;

p = new Polygon();r = p; //?

Page 10: Java-Kurs - 9. Übung Besprechung der Hausaufgabe Klassen und Objekte: Vererbung Konzeptueller Hintergrund: Spezialisierung Modellierung mittels UML Vererben

Überlagerung• In Unterklasse und Oberklasse Methode mit

• gleichem Namen• gleichen Parametern (Anzahl und Typ)

• Zweck: Unterklassen modellieren speziellere Objekte; Methoden der Oberklasse müssen häufig ebenfalls spezialisiert werden

• Welche Methode wird verwendet? • im Normalfall die speziellste ("tiefste") Methode

Page 11: Java-Kurs - 9. Übung Besprechung der Hausaufgabe Klassen und Objekte: Vererbung Konzeptueller Hintergrund: Spezialisierung Modellierung mittels UML Vererben

Überlagerung: Beispiel

class Polygon{ ...double fläche(){ ... } ...}

class Rechteck extends Polygon{ ......}

void main .. {Rechteck r = new Rechteck();double f = r.fläche(); //Methode aus Polygon

}

Page 12: Java-Kurs - 9. Übung Besprechung der Hausaufgabe Klassen und Objekte: Vererbung Konzeptueller Hintergrund: Spezialisierung Modellierung mittels UML Vererben

Überlagerung: Beispiel

class Polygon{ ...double fläche(){ ... } ...}

class Rechteck extends Polygon{ ...double fläche(){ ... } ...}

void main .. {Rechteck r = new Rechteck();double f = r.fläche(); //Methode aus Rechteck

}

Page 13: Java-Kurs - 9. Übung Besprechung der Hausaufgabe Klassen und Objekte: Vererbung Konzeptueller Hintergrund: Spezialisierung Modellierung mittels UML Vererben

Hausaufgabe 8• Ergänzen Sie die vorgestellten Klassen „Person“

und „Student“ um die Unterklassen „Dozent“ und „Verwaltungsangestellter“. Die Unterklasse „Dozent“ soll dabei noch weiter in „Professor“ und „Assistent“ unterschieden werden.

Erzeugen Sie ein Objekt jeder Klasse.