我已經創建了兩個類Standard
和Family
其擴展抽象類Room
,編譯Standard
類我正在遇到錯誤時「不能超構造函數之前引用roomNumber被稱爲」但我不明白爲什麼,任何幫助將不勝感激。不能引用roomNumber前超構造函數被稱爲
Room
public abstract class Room
{
public int roomNumber;
public String roomType;
public boolean ensuite;
public boolean available;
public Room(int roomNumber, boolean enSuite)
{
this.roomNumber = roomNumber;
ensuite = enSuite;
available = false;
}
}
Standard
public class Standard extends Room
{
private int roomNumber;
private int childCap;
private int adultCap;
public Standard(int theNumber, int kidsCap, int adultsCap)
{
super(theNumber, roomNumber);
childCap = childsCap;
adultCap = AdultsCap;
}
}
爲什麼你重新聲明標準類中的roomNumber?我認爲這是問題 – kol
PS這有你可能希望清理的一些問題。標準構造函數有兩個編譯錯誤。您將roomNumber代替「enSuite」作爲參數 - 它們甚至不是同一類型。你的「ensuite = enSuite」聲明令人困惑,因爲名字不同,只有一個字母的情況,使用公共字段是一個禁忌,最後在子類中隱藏一個私有的公共字段勢必造成混淆! –
謝謝你們,花了一段時間,但我明白你的意思,我已經解決了這個問題 –