我目前正在
Java中进行基于文本的冒险,目的是使用它作为测试平台,尝试从我正在阅读的这本Java书中学到的新东西.
我现在正在尝试声明一个子类的实例(因为播放器的脚本是为了找到它).
父类是Item,它有两个子类:Weapon和Armor.
但是,无论我尝试和声明它的哪种方式,我正在使用的IDE(Eclipse)标记该行,并出现以下错误:
No enclosing instance of type Item is accessible. Must qualify the allocation with an enclosing instance of type Item (e.g. x.new A() where x is an instance of Item).
当我尝试将其声明为以下任何一种情况时:
Item machinePistol = new Weapon();
Weapon machinePistol = new Weapon();
Item machinePistol = new Item.Weapon();
Weapon machinePistol = new Item.Weapon();
作为参考,item类看起来像这样:
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;
}
}
所以如果有人能告诉我如何正确地实例化武器(所以我可以设置其字段的值并将其交给玩家),我将非常感激.