我有一个类来创建具有类似功能的派生类。
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();
// }
}
...
}
或者我应该取消注释这些行并在超类中删除它们吗?
我应该将超类设为抽象吗?
我应该在超类中使用字段吗?
答案 0 :(得分:1)
在Java中,如果在超类中声明并实现了一个方法,那么如果扩展这个超类,子类将默认实现该方法。
e.g
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();
答案 1 :(得分:1)