Upload
florian-vogel
View
212
Download
0
Embed Size (px)
Citation preview
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
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
Beispiel zu Klassenhierarchiespezieller
Student Dozent Verwaltungs-angestellter
Person
Ordentlicher Student
Gasthörer
Beispiel zu Klassenhierarchie
1-dimensionale Figur
Geometrische Figur
gerade Strecke
2-dimensionale Figur
Spline Kreis-bogen
Dreieck Viereck
Rechteck
Quadrat
spezieller
Klassenhierarchien in Java
Syntax:
class Unterklasse extends Oberklasse { . . .}
Beispiel: class Person { . . .}
class Student extends Person { . . .}
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 {...}
Vererbung
• Eine Unterklasse erbt alle Eigenschaften ihrer Oberklassen
Eine Unterklasse erbt alle Variablen ihrer Oberklassen
Eine Unterklasse erbt alle Methoden ihrer Oberklassen
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()
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; //?
Ü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
Ü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
}
Ü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
}
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.