我刚刚开始在我的类中使用继承,这是我遇到的第一个错误。除了在错误部分抛出标题的构造函数之外,大多数代码都可以正常工作。
public class CellDoor extends CellPassage {
// TODO: instance variable(s)!
private String imageOpen,imageClosed;
private boolean locked, occupied;
private Item item;
// Create a new cell in the dungeon with the specified image.
// The CellDoor class represents an door that can be closed (locked) or open.
// NOTE: an open door is allowed to hold an item (e.g. a gem or key).
public CellDoor(String imageOpen, String imageClosed, boolean locked) {
this.imageOpen = imageOpen;
this.imageClosed = imageClosed;
this.locked = locked;
}
cellPassage 构造函数是:
public CellPassage(String image) {
this.image = image;
}
有人可以给我一些建议吗?
最佳答案
您可能在 CellPassage
类中有一个不是默认构造函数。这意味着 Java 无法通过调用默认的 super 构造函数来创建您的 CellDoor
对象。您必须在构造函数主体的第一行添加一个 super(...)
,其中 ... 是 CellPassage
类中构造函数的参数。
public CellDoor(String imageOpen, String imageClosed, boolean locked)
{
super(imageOpen);
this.imageOpen = imageOpen;
this.imageClosed = imageClosed;
this.locked = locked;
}
如果您提供 CellPassage
类中的代码,我们将轻松确定您应该如何编写 CellDoor
构造函数
关于java - 隐式 super 构造函数。必须显式调用另一个构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35610980/