我目前正在使用Java制作基于文本的冒险游戏,以便将其用作测试平台,尝试使用我正在阅读的Java书籍中学到的新知识。
我现在正在尝试声明一个子类的实例(因为玩家会找到它)。
父类是Item
,它有两个子类:Weapon
和Armour
。
然而,无论我如何声明它,在我使用的IDE(Eclipse)上,这一行始终会被标记为以下错误:
类型Item的封装实例不可访问。 必须使用类型Item的封装实例限定分配(例如,x.new 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;
}
}
如果有人可以告诉我如何正确地实例化武器(以便我可以设置其字段的值并将其交给玩家),我将不胜感激。