AFAIK, meine Klasse extends
Elternklassen und implements
Schnittstellen. Aber ich stoße auf eine Situation, die ich nicht nutzen kann implements SomeInterface
. Es ist die Deklaration eines generischen Typs. Beispielsweise:
public interface CallsForGrow {...}
public class GrowingArrayList <T implements CallsForGrow> // BAD, won't work!
extends ArrayList<T>
Hier ist das Verwenden implements
syntaktisch verboten. Ich dachte zuerst, dass die Verwendung der Schnittstelle in <> überhaupt verboten ist, aber nein. Es ist möglich, dass ich nur extends
anstelle von verwenden muss implements
. Infolgedessen "erweitere" ich eine Schnittstelle. Dieses andere Beispiel funktioniert:
public interface CallsForGrow {...}
public class GrowingArrayList <T extends CallsForGrow> // this works!
extends ArrayList<T>
Für mich scheint es eine syntaktische Inkonsistenz zu sein. Aber vielleicht verstehe ich einige Finessen von Java 6 nicht? Gibt es noch andere Stellen, an denen ich Schnittstellen erweitern soll? Sollte die Schnittstelle, die ich erweitern möchte, einige Besonderheiten aufweisen?