2011-12-11 136 views
1
public class MyMap extends LinkedHashMap<String, Serializable> 
{ 
    @Override 
    public Serializable get(String key) 
    { 
     return null; 
    } 
} 

錯誤:方法不覆蓋或從超Java。覆蓋方法

回答

3

取出@Override註釋實現的方法。這將解決錯誤。

請記住,如果你實際上想要重寫某些父方法,這不是你想要做的。相反,請在您的get方法中查找可能的拼寫錯誤,錯誤或類型不匹配。

在你的情況,你可能想:

@Override 
public Object get(Object key) 
{ 
    return null; 
} 
3

get簽名是public V get(Object key)

所以,你需要的參數類型更改爲Object,而不是String

3

method你試圖重寫具有以下特徵:

public Serializable get(Object key); 

要覆蓋它,你的方法的參數,因此必須爲Object型的,而不是String

public class MyMap extends LinkedHashMap<String, Serializable> 
{ 
    @Override 
    public Serializable get(Object key) 
    { 
     return null; 
    } 
} 
+0

爲什麼公衆V get(Object key)成功覆蓋 @Override public Serializable put(String key,Serializable value) { } ? – Ufx

+0

@ user1034253:我很抱歉,但我不明白這個問題。 – NPE

+0

public Serializable put(String key,Serializable value) - 編譯後的public Serializable get(String key)如你所說需要替換String by Object – Ufx