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

오류 : 메소드가 오버라이드 (override) 또는 슈퍼Java. 재정의 방법

답변

3

@Override 주석을 제거에서 방법을 구현하지 않습니다. 그러면 오류가 수정됩니다.

실제로이 일부 상위 메소드를 대체하려는 경우, 이는 사용자가 원하는 것이 아닙니다. 대신 get 메소드에서 오타, 오류 또는 유형 불일치가 있는지 찾아보십시오. 귀하의 경우에는

, 당신은 아마 원하는 :

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

get의 서명은 그래서 당신은 Object 대신 String에 매개 변수 유형을 변경해야 public V get(Object key)

입니다.

3

method 다음과 같은 서명이 무시하려는 :

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

왜 공개 :

public Serializable get(Object key); 

그것을 무시하기를, 당신의 방법의 주장 따라서,하지 String 유형 Object이어야한다 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 get (String key) 필요에 따라 바꾸기 Object by String – Ufx