如何在Java中不重写子类中的方法?
我有一个类,需要它来创建具有类似功能的派生类如何在Java中不重写子类中的方法?,java,inheritance,Java,Inheritance,我有一个类,需要它来创建具有类似功能的派生类 public abstract class PreloaderAdapter<T> extends BaseAdapter { private final List<T> mList; ... public void addItems(List<T> list) { mList.addAll(list); notifyDataSetChanged();
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();
}
}
...
}
公共抽象类预处理适配器扩展BaseAdapter{
私人最终名单;
...
公共无效附加项(列表){
mList.addAll(列表);
notifyDataSetChanged();
}
公共空白清除(布尔isRepaint){
mList.clear();
如果(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();
// }
}
...
}
公共类SomeListAdapter扩展了PreforeAdapter{
私人最终名单;
...
公共无效附加项(列表){
超级附加项(列表);
//mList.addAll(列表);
//notifyDataSetChanged();
}
公共空白清除(布尔isRepaint){
超级清晰(isRepaint);
//mList.clear();
//如果(isRepaint){
//notifyDataSetChanged();
// }
}
...
}
在Java中,如果在一个超类中声明并实现了一个方法,那么如果扩展这个超类,默认情况下子类将实现该方法 e、 g 使用此代码,您可以执行以下操作:
PitBull dogObject = new PitBull();
dogObject.bark();
在Java中,如果在一个超类中声明并实现了一个方法,那么如果扩展这个超类,默认情况下子类将实现该方法 e、 g 使用此代码,您可以执行以下操作:
PitBull dogObject = new PitBull();
dogObject.bark();
如果不希望重写这些方法,则不需要声明它们。子类将拥有超类的方法。将suoerclass方法设置为final。最后的方法不能被重写。@Gendarme,Jeet,谢谢,我会尝试。另外,我猜在子类中再次声明
mList
可能会混淆事情。请考虑是否需要<代码> MListmList
可能会混淆事情。请考虑是否需要代码> McList S.侧注:您想了解开/闭原理: