我已经创建了两个类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”声明令人困惑,因为名字不同,只有一个字母的情况,使用公共字段是一个禁忌,最后在子类中隐藏一个私有的公共字段势必造成混淆! –
谢谢你们,花了一段时间,但我明白你的意思,我已经解决了这个问题 –