AFAIK, minha classe extendspai classes e implementsinterfaces. Mas me deparo com uma situação em que não posso usar implements SomeInterface. É a declaração de um tipo genérico. Por exemplo:
public interface CallsForGrow {...}
public class GrowingArrayList <T implements CallsForGrow> // BAD, won't work!
extends ArrayList<T>
Aqui, o uso implementsé sintaticamente proibido. Pensei primeiro que o uso da interface dentro de <> é proibido, mas não. É possível, eu só tenho que usar em extendsvez de implements. Como resultado, estou "estendendo" uma interface. Este outro exemplo funciona:
public interface CallsForGrow {...}
public class GrowingArrayList <T extends CallsForGrow> // this works!
extends ArrayList<T>
Para mim, parece uma inconsistência sintática. Mas talvez eu não entenda alguns detalhes do Java 6? Existem outros lugares onde eu devo estender interfaces? A interface, que pretendo estender, deve ter alguns recursos especiais?