我想要定義一個實現Comparable的抽象類。當我定義,定義如下類:Java抽象類使用泛型實現接口
public abstract class MyClass implements Comparable <MyClass>
子類必須實現compareTo(MyClass object)
。相反,我希望每個子類都實現compareTo(SubClass object)
,接受它自己類型的對象。當我嘗試用類似的方式定義抽象類時:
public abstract class MyClass implements Comparable <? extends MyClass>
它抱怨說「超類型不能指定任何通配符」。
有沒有解決方案?
我認爲就是這樣。 – Pointy 2010-08-29 00:04:25
考慮(1)class MyImpl1 extends MyClass {...};和(2)MyImpl2類擴展MyClass {public int compareTo(MyImpl1 o){...}}。 MyImpl2沒有做正確的事情。 –
emory
2010-08-29 00:41:42
如果我們假設每個子類都使用自己的類作爲泛型參數來擴展MyClass,那麼解決方案是正確的。但是,埃默裏指出,似乎沒有辦法確保這一點。 – Cem 2010-08-29 08:46:09