michael.eichberg@dhbw.de, Raum 149B
1.0
Ober- und Unterklassen
class X extends Y { ... }
- Welches ist die Oberklasse und welches die Unterklasse?
class Z extends Y { ... }
- Ist Z eine Unterklasse von X?
Statischer und dynamischer Typ
Gegeben sei folgender Code:
class X extends Y { ... }
class Z extends Y { ... }
Y y = new X();
Welches ist der statische und welches der dynamische Typ von y
?
Kann ich y
auch mit einem Objekt vom Typ Z initialisieren?
Kann ich einer Referenzvariablen Z z;
ein Objekt vom Typ X
zuweisen?
Kann ich einer Referenzvariablen Z z;
ein Objekt vom Typ Y
zuweisen?
Wie teste ich, wenn ich eine Referenzvariable Y y;
habe, ob das Objekt, auf das y
zeigt, vom Typ X
ist?
Was passiert wenn meine Referenzvariable vom Typ Y y
mit null
initialisiert ist, und ich einen Typtest auf X
durchführe?
Methoden
Wann kann ich Methoden in einer Subklasse überschreiben?
Was ist der Unterschied zwischen Method Overloading und Method Overriding?
Was ist der Unterschied zwischen einem Konstruktor und einer Methode?
Wie kann ich gezielt eine Methode der Superklasse in einer Subklasse aufrufen?
Wie kann ich gezielt einen anderen Konstruktor der selben Klasse aufrufen?
Welche Methoden hat jede Klasse und warum?
Überschriebene Methoden
Gegeben sei folgender Code:
class Y { void p(){println("Y.p");} }
class X extends Y { void p(){println("X.p");} }
class Z extends Y {
void p(){println("Z.p");}
void m(){println("Z.m");} }
Y x = new X(); Y z = new Z();
Was wird ausgegeben bei x.p();
?
Was gibt x.p();
aus, wenn die Methode p
in der Klasse X
nicht überschrieben worden wäre?
Wie kann ich die Methode m
von Z
auf der Variable z
aufrufen?
Was müsste ich tun - und was würde dann passieren - wenn ich versuchen wollte die Methode m
auf der Variable x
aufzurufen?
Ausnahmen
(Exceptions)
Welches ist die Superklasse aller Ausnahmen?
Was ist der Unterschied zwischen checked und unchecked Ausnahmen?
Wie fange ich eine Ausnahme?
Was muss ich machen, wenn ich eine checked Exception nicht fangen will?
Was ist ein catch
Block.
Warum sollte ich Error
s nicht fangen?`