覆盖接口函数时,错误"method does not override method from its superclass"?
when override interface function, error "method does not override method from its superclass"?
有一些功能的接口。 base class 实现接口。然后在subclass想覆盖函数
但是@override 给出了编译器错误"method does not override method from its superclass"
问题:在subclass中,如何覆盖baseclass中实现的接口函数?
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
}
}
您可能正在使用 Java 1.5。 @Override 可用于从 1.6 开始实现的接口方法。
另见Why is javac failing on @Override annotation
有一些功能的接口。 base class 实现接口。然后在subclass想覆盖函数
但是@override 给出了编译器错误"method does not override method from its superclass"
问题:在subclass中,如何覆盖baseclass中实现的接口函数?
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
}
}
您可能正在使用 Java 1.5。 @Override 可用于从 1.6 开始实现的接口方法。
另见Why is javac failing on @Override annotation