假设我们有一个基类:
public abstract class BaseFragment extends Fragment {
...
protected abstract boolean postExec();
...
}
然后从中派生出其他类别(例如,Fragment_Movie,Fragment_Weather ...)
public class Fragment_Music extends BaseFragment{
@Override
protected boolean postExec() {
return false;
}
}
但是,向基类添加新方法时:
public abstract class BaseFragment extends Fragment {
...
protected abstract boolean postExec();
protected abstract boolean parseFileUrls();
...
}
Eclipse立即显示错误,要求在已经派生的类中实现此新方法。
是否有必要在基类中添加“默认”抽象方法,以便即使我们不在派生类中实现该方法也不会显示错误?(因为每次基类追加新方法时都要花费很多时间来修复每个派生类。)
最简单的解决方案是添加具有存根实现的方法。声明为抽象需要非抽象扩展来实现该方法。
这样做可以缓解编译问题,尽管在使用时不覆盖它显然会抛出异常:
public abstract class BaseFragment extends Fragment {
protected boolean doSomethingNew() {
throw new NotImplementedException("method not overridden");
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句