Java Reference
In-Depth Information
1 .7 Vererbung
Im Folgenden beschä igen wir uns mit Vererbungs- und Implementierungsbeziehungen im
Zusammenhang mit Generics. Wenn eine Klasse aus einer generischen Klasse abgeleitet
wird, dann kann der Typparameter für die Basisklasse festgelegt werden, so dass die abge-
leitete Klasse keinen Typparameter mehr haben muss (aber haben kann, wenn sie nämlich
einen neuen Typparameter defi niert, der mit der Basisklasse nichts zu tun hat):
class A {...}
class B<T> {...}
class C extends B<A> {...}
Auf diese Weise kann man übrigens die Einschränkung, dass keine Felder für generische
Objekte erzeugt werden dürfen, umgehen, denn Felder der Klasse, die keinen Typparameter
mehr enthält, dürfen natürlich erzeugt werden (A, B und C beziehen sich auf die obigen
Klassen):
B<A>[] bArray = new B<A>[10]; //Syntaxfehler
C[] c = new C[10];
Statt der Festlegung des Typparameters bei der Ableitung kann der Typparameter der
Basisklasse auch off en bleiben. In diesem Fall muss dann die abgeleitete Klasse ebenfalls
einen Typparameter haben:
class B<T> {...}
class C<T> extends B<T> {...}
Für die abgeleitete Klasse muss mindestens dieselbe Typeinschränkung gelten wie für die
Basisklasse:
class A {...}
class B<T extends A> {...}
class C<T extends A> extends B<T> {...}
In den folgende Codezeilen ist der Typparameter in der abgeleiteten Klasse weniger stark
eingeschränkt wie in der Basisklasse. Dies führt deshalb zu einem Syntaxfehler:
class A {...}
class B<T extends A> {...}
class C<T> extends B<T> {...} //Syntaxfehler
Natürlich sind auch Mischformen im Rahmen von Ableitungen möglich, wobei einige Typ-
parameter der Basisklasse festgelegt werden, andere aber off en bleiben:
class A {...}
class B<T1, T2> {...}
class C<T> extends B<T, A> {...}
Es ist auch möglich, dass die abgeleitete Klasse zusätzliche Typparameter einführt. In den
folgenden Codezeilen sind T1 und T3 neue Typparameter der Klasse C, während T2 der
zweite Typparameter von C und gleichzeitig der erste Typparameter der Klasse B ist:
 
Search WWH ::




Custom Search