2016-02-24 5 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

Все хорошо. Если вам нужно больше разъяснений, дайте мне знать :) Вы можете отметить ответ, если он вам подходит, чтобы другие могли найти его полезным. –