[英]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.