java - 在调用父类(super class)型构造函数之前无法引用 roomNumber

标签 java abstract-class super

我创建了两个类StandardFamily,它们在编译Standard类时扩展了抽象类Room我遇到了错误“在调用父类(super class)型构造函数之前无法引用 roomNumber”,但我不明白为什么,任何帮助将不胜感激。

房间

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;
   }
}

标准

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;
   }
}

最佳答案

super(theNumber, roomNumber);

当调用 super 构造函数时,它必须是您要做的第一件事。您正在尝试将私有(private)字段 roo​​mNumber 作为参数发送。

顺便说一句,Room 构造函数接受一个 int 和一个 boolean 值,而您发送两个 int。

public Room(int roomNumber, boolean enSuite)

关于java - 在调用父类(super class)型构造函数之前无法引用 roomNumber,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8181795/

相关文章:

java - Maven 在 Eclipse 中构建而不使用命令提示符

C++ 在子类中调用基类构造函数

java - Android:在前面保持警惕,让用户必须响应

java - 计算文本文件中的句子数

java - 流形和结构

c# - 接口(interface)与抽象类

c++ - 函数可以接受抽象基类作为参数吗?

c# - 允许子类中的字段的类型是父类中字段类型的后代

python - 在 Python 中使用 super() 是个好主意吗?

java - @Override 和 super