您好我如何正确使用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);
}
然后它变成required
和found
错误,告诉我长度不对。我理解错误告诉我的是什么。
所以这是我的问题。如何重做Window
构造函数,以便在不更改这些类的情况下满足超类和其他类。
答案 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
。