你应该做的:
添加一个构造函数,以您的超类:
public Superclass {
public SuperClass(String flavour) {
// super class constructor
this.flavour = flavour;
}
}
在薯片类:
public Crisps(String flavour, int quantity) {
super(flavour); // send flavour to the super class constructor
this.quantity = quantity;
}
有限公司mments
一些评论你的问题:
“在超我已经初始化现场与”
private String flavour;
这不是一个初始化,这是一个宣言。初始化是当你设置一个值。
“我得到一个错误”味道在超类中有私人访问“,但我相信这应该无关紧要,因为我调用访问器方法将它返回给字段?
当您调用访问器(又名getter)时,它可以 - 取决于getter的可见性。 在你的代码的问题是:
this.flavour =
,因为味道是不是薯片类声明的字段,但在晚饭类,所以你不能做这样的直接访问。你应该用我的建议还是在超类声明一个二传手:
public void setFlavour(String flavour) {
this.flavour = flavour;
}
然后你可以使用它的子类:
public Crisps(String flavour, int quantity) {
this.quantity = quantity;
setFlavour(flavour);
}
恩,你有什么应该可以正常工作。你确定你向我们展示真实的代码吗? –
请发布[SSCCE](http://sscce.org)以复制您的问题。 –
在'薯片'中还是在父类中声明'title'? –