继承中必需的和发现的错误

时间:2014-08-22 09:16:19

标签: java inheritance window required

您好我如何正确使用super()关键字。这有点难以解释所以请尝试理解。

所以我有一个名为“Window”的类,它是另一个名为“Room”的类的子类。

这是带有构造函数的Room

public class Room {

private Position position;

private Color color;

    public Room(Position pos, Color colour){
        this.position = pos;
        this.color = color;
    }
}

所以我想给门一个颜色Color.RED一个Window对象用一个输入位置参数构造。

到目前为止我所拥有的是:

public class Window extends Room{

private Color color;

    public Window(Position position, Color color) {
        super(position, color);
        this.colour = Color.RED;
    }

但是在我的其他课程中,有一些代码可以创建一个只有位置参数

的新Window

这是example代码

public class example{
private Window   window;
private Position position;

public example() {

}

@Before
public void create() {
    position = new Position(4,3);
    window = new Window(position);
}

然后它变成requiredfound错误,告诉我长度不对。我理解错误告诉我的是什么。

所以这是我的问题。如何重做Window构造函数,以便在不更改这些类的情况下满足超类和其他类。

2 个答案:

答案 0 :(得分:0)

在Window中创建新构造函数并设置默认颜色。

public Window(Position position) {
        //Set default color
        super(position, Color.RED);
        this.colour = Color.RED;
    }

答案 1 :(得分:0)

Window课程中添加另一个构造函数:

public class Window extends Room {

    public Window(Position position) {
        super(position, null);
    }

或者,定义传递的默认颜色而不是null