AFAIK, minha classe extends
pai classes e implements
interfaces. 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 extends
vez 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?