AFAIK, mi clase extends
, clases e implements
interfaces para padres . Pero me encuentro con una situación en la que no puedo usar implements SomeInterface
. Es la declaración de un tipo genérico. Por ejemplo:
public interface CallsForGrow {...}
public class GrowingArrayList <T implements CallsForGrow> // BAD, won't work!
extends ArrayList<T>
Aquí el uso implements
está sintácticamente prohibido. Primero pensé que está prohibido usar la interfaz dentro de <>, pero no. Es posible, solo tengo que usar en extends
lugar de implements
. Como resultado, estoy "extendiendo" una interfaz. Este otro ejemplo funciona:
public interface CallsForGrow {...}
public class GrowingArrayList <T extends CallsForGrow> // this works!
extends ArrayList<T>
A mí me parece una inconsistencia sintáctica. ¿Pero tal vez no entiendo algunas sutilezas de Java 6? ¿Hay otros lugares donde debería extender las interfaces? ¿Debería la interfaz, que quiero extender, tener algunas características especiales?