让我们先从代码开始
这是我的超类
public class Burger {
protected String name;
protected MeatType meat;
protected BreadType bread;
private double basePrice;
private EnumMap<Addition, Integer> additions;
public Burger(String name, MeatType meat, BreadType bread){
this.name = name;
this.meat = meat;
this.bread = bread;
this.basePrice = 3.00;
this.additions = new EnumMap<Addition, Integer>(Addition.class);
}
这是继承自它的子类
public class FitBurger extends Burger {
public FitBurger(String name, MeatType meat, BreadType bread){
super(name,meat,bread);
}
}
但是,我不希望我的子类有一个带有BreadType面包的构造函数,但我仍然希望它继承变量并将其设置为特定值。我希望超类保持原样。
是否有可能以任何可能的方式实现这一目标?
答案 0 :(得分:0)
但我仍然希望它继承变量并将其设置为特定值。我希望超类保持原样。是否有可能以任何可能的方式实现这一目标?
是。您可以将常量传递给super()
来电。像,
public FitBurger(String name, MeatType meat){
super(name,meat,RYE_BREAD_CONSTANT);
}
答案 1 :(得分:0)
您需要从FitBurger构造函数中删除BreadType,但在超级调用中传入一个值。
public class FitBurger extends Burger {
public FitBurger(String name, MeatType meat){
super(name,meat,BreadType.Bun);
}
}
答案 2 :(得分:0)
public FitBurger(String name, MeatType meat){
super(name,meat,null);
}
将此新构造函数添加到FitBurger
类或替换现有构造函数。
答案 3 :(得分:0)
从子类构造函数中省略BreadType bread参数,并使用super(name,meat, null)
或任何您想要使用的默认BreadType