AFAIK, мой класс extends
родительских классов и implements
интерфейсов. Но я сталкиваюсь с ситуацией, когда я не могу использовать implements SomeInterface
. Это объявление универсальных типов. Например:
public interface CallsForGrow {...}
public class GrowingArrayList <T implements CallsForGrow> // BAD, won't work!
extends ArrayList<T>
Здесь использование implements
синтаксически запрещено. Сначала я подумал, что использование интерфейса внутри <> вообще запрещено, но нет. Это возможно, я должен использовать только extends
вместо implements
. В результате я «расширяю» интерфейс. Этот другой пример работает:
public interface CallsForGrow {...}
public class GrowingArrayList <T extends CallsForGrow> // this works!
extends ArrayList<T>
Для меня это выглядит как синтаксическое несоответствие. Но, может быть, я не понимаю некоторые особенности Java 6? Есть ли другие места, где я должен расширять интерфейсы? Должен ли интерфейс, который я имею в виду расширить, иметь какие-то особые функции?