2016-02-24 45 views
0

我只是在我的类中进行继承,这是我遇到的第一个错误。除了在错误部分中引发标题的构造函数外,大部分代码正在工作。隐式超级构造函数。必须明确调用另一个构造函数

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

能有人给我一些这方面的指针?

+0

在'CellPassage'类是可用什么构造?请包括他们。 – rgettman

回答

0

您可以在CellPassage类中有一个构造函数,它不是默认的类。这意味着Java不能通过调用默认的超级构造函数来创建您的CellDoor对象。您必须在构造函数主体的第一行添加super(...),其中...是CellPassage类中的构造函数的参数。

public CellDoor(String imageOpen, String imageClosed, boolean locked) 
{ 
    super(imageOpen); 
    this.imageOpen = imageOpen; 
    this.imageClosed = imageClosed; 
    this.locked = locked; 
} 

如果您提供从类CellPassage的代码,我们可以很容易确定应该如何准确地写你CellDoor构造

+0

完美谢谢。我对这个继承很新颖,所以它让我有点失落。 – Kevin

+0

我编辑了答案,以便这应该现在:) –

+0

所有的好。如果您需要更多的澄清,请告诉我:)如果您的答案适合您,您可以标记答案,以便其他人也可以找到它。 –

相关问题