Как правильно объявить экземпляр подкласса?

В настоящее время я создаю текстовое приключение на Java с целью использования его в качестве тестовой платформы, чтобы опробовать новые вещи, которые я узнаю из этой книги по Java, которую я читаю.

Сейчас я пытаюсь объявить экземпляр подкласса (так как игрок запрограммирован на его поиск). Родительский класс - Item и имеет два подкласса: Weapon и Armor .

Однако, независимо от того, каким способом я пытаюсь объявить его, IDE, которую я использую (Eclipse), помечает строку следующей ошибкой:

Нет доступного включающего экземпляра типа Item. Должен квалифицировать выделение с помощью включающего экземпляра типа Item (например, xnew A (), где x - это экземпляр Item).

Когда я пытаюсь объявить его, как любое из следующих:

Item machinePistol = new Weapon(); 
Weapon machinePistol = new Weapon();
Item machinePistol = new Item.Weapon();
Weapon machinePistol = new Item.Weapon();

Для справки, класс элемента выглядит как это:

package JavaAIO;

public class Item 
{
    public String itemName;
    public double itemWeight;

    public class Weapon extends Item
    {
        public double damage;
        public double speed;
    }
    public class Armour extends Item
    {
        public double dmgResist;
        public double attSpdMod;    
    }
}

Так что, если бы кто-нибудь мог сказать мне, как я могу правильно создать экземпляр Оружия (чтобы я мог установить значения его полей и передать его игроку), я был бы очень признателен.

7
задан Gary 16 March 2014 в 16:28
поделиться