AFAIK, sınıf extends
ana sınıflarım ve implements
arayüzlerim. Ama kullanamayacağım bir durumla karşılaşıyorum implements SomeInterface
. Genel türlerin beyanıdır. Örneğin:
public interface CallsForGrow {...}
public class GrowingArrayList <T implements CallsForGrow> // BAD, won't work!
extends ArrayList<T>
Burada implements
sözdizimi kullanmak yasaktır. İlk önce, <> içindeki arayüzü kullanmak hiç yasak değil, ama hayır diye düşündüm. Mümkün, sadece extends
yerine kullanmak zorundayım implements
. Sonuç olarak, bir arabirimi "genişletiyorum". Bu başka bir örnek işe yarıyor:
public interface CallsForGrow {...}
public class GrowingArrayList <T extends CallsForGrow> // this works!
extends ArrayList<T>
Bana göre sözdizimsel bir tutarsızlık gibi görünüyor. Ama belki Java 6'nın bazı inceliklerini anlamıyorum? Arabirimleri genişletmem gereken başka yerler var mı? Uzatmak istediğim arayüz bazı özel özelliklere sahip olmalı mı?