我有一個Java的Button基類和幾個類繼承自這個類的按鈕子類。 的按鈕基本分類如下:強制子類「實現」字段的值
public abstract class BaseButton extends AppCompatButton{
private ButtonStatus buttonStatus = ButtonStatus.OFF;
private Image onIcon;
private Image offIcon;
public void toggleButton(){
if(this.buttonStatus == ButtonStatus.ON){
this.buttonStatus = ButtonStatus.OFF;
setBackgroundResource(offIcon);
}else if(this.buttonStatus == ButtonStatus.OFF){
this.buttonStatus = ButtonStatus.ON;
setBackgroundResource(onIcon);
}
}
}
我希望每個按鈕子類可以調用toggleButton()
方法,但他們每個人都有不同的歐康和offIcon領域。由於我在超類中使用這些字段,所以我需要讓它們在那裏聲明,並且它們都被實例化爲null。
因此,無論何時我從子類中調用toggleButton()
方法,都將使用超類中的值null
。但是,我想在超類中實現此方法(以避免代碼重複),但仍使用子類字段。
我該如何做到這一點?
添加'getOnIcon()'和'getOffIcon()'抽象方法 – 2017-05-04 15:49:39
(可能是一個更好重複,感覺自由..) – 2017-05-04 15:55:19