AFAIK, mi clase extends, clases e implementsinterfaces 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 implementsestá sintácticamente prohibido. Primero pensé que está prohibido usar la interfaz dentro de <>, pero no. Es posible, solo tengo que usar en extendslugar 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?