你應該做的:
添加一個構造函數,以您的超類:
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'? –