2016-05-02 12 views
0

いくつかの機能を持つインターフェースを持っています。基本クラスはインタフェースを実装します。次に、サブクラスで関数をオーバーライドします。インタフェースをオーバーライドすると、エラー "メソッドはそのスーパークラスのメソッドをオーバーライドしません"?

しかし@Overrideは

質問「メソッドは、そのスーパークラスからメソッドをオーバーライドしない」コンパイラエラーを与える:サブクラスで、どのように基底クラスで実装されたインタフェース機能を無効にするために?

public interface TheCallback { 
    void onImageUrlReady(final ImageView view, final ImageRecord imageData); 

}

public class ImageFragment extends Fragment implements TheCallback { 

    @Override 
    void onImageUrlReady(final ImageView view, final ImageRecord imageData) { 
     //base class implementation 
    } 
} 

public class DerivedFragment extends ImageFragment { 
    @Override //<=== got compile error here 
    void onImageUrlReady(final ImageView view, final ImageRecord imageData) { 
     //sub class override implementation 
    } 
} 
+0

を参照してください。 – CommonsWare

+0

申し訳ありませんが、それはタイプミスです。コードでは実際には@オーバーライドです。入力ミスを修正するために質問を編集しました。ありがとう! – lannyf

答えて

1

おそらく、Javaの1.5を使用しています。 @Overrideは1.6から実装されたインタフェースメソッドで使用できます。

また、あなたは両方の場所でOverride` @ ``でe`が欠落しているWhy is javac failing on @Override annotation

関連する問題