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? Чи є інші місця, де мені слід розширити інтерфейси? Чи повинен інтерфейс, який я маю на увазі розширити, мати якісь особливості?