java强制子类“实现”字段的值
我在Java中有一个Button基类,以及从这个类继承的几种类型的Button子类。 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()
方法,但它们都有不同的onIcon和officecon字段。因为我在超类中使用这些字段,所以我也需要在那里声明它们,并且它们都被实例化为null
因此,每当我从子类调用toggleButton()
方法时,都会从超类使用null
值。然而,我想在超类中实现这个方法(以避免代码重复),但仍然使用Subclass字段
我怎样才能做到这一点
# 1 楼答案
将两个图标作为参数传递给超类:
在子类中