[英]How not to override a method in a subclass in Java?
我有一类将需要创建具有类似功能的派生类。
public abstract class PreloaderAdapter<T> extends BaseAdapter {
private final List<T> mList;
...
public void addItems(List<T> list) {
mList.addAll(list);
notifyDataSetChanged();
}
public void clear(boolean isRepaint) {
mList.clear();
if (isRepaint) {
notifyDataSetChanged();
}
}
...
}
在派生类中,我可以重写这些方法,但不希望这样做,因为它们是相同的。
请问我,写这样的文字够吗?
public class SomeListAdapter extends PreloaderAdapter<MyClass> { private final List<MyClass> mList; ... public void addItems(List<MyClass> list) { super.addItems(list); // mList.addAll(list); // notifyDataSetChanged(); } public void clear(boolean isRepaint) { super.clear(isRepaint); // mList.clear(); // if (isRepaint) { // notifyDataSetChanged(); // } } ... }
还是应该取消注释这些行并在超类中将其删除?
我应该将超类抽象吗?
我应该在超类内部使用字段吗?
在Java中,如果在一个超类中声明并实现了一个方法,则如果扩展此超类,则子类将在默认情况下实现该方法。
例如
public class Dog {
//Atributes
//Methods
public void bark() {...}//Do an action
}
public class PitBull extends Dog {
//Atributes
//Methods
public void action2() {...}//Do another action
}
使用此代码,您可以执行以下操作:
PitBull dogObject = new PitBull();
dogObject.bark();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.