我目前正在使用 Java 进行基于文本的冒险,目的是使用它作为测试平台,尝试我从正在阅读的这本 Java 书中学到的新东西。
我现在尝试声明一个子类的实例(因为玩家编写了脚本来查找它)。
父类是Item
它有两个子类:Weapon
and 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;
}
}
因此,如果有人能告诉我如何正确实例化武器(这样我就可以设置其字段的值并将其提供给玩家),我将不胜感激。
“无法访问 Item 类型的封闭实例。必须使用 Item 类型的封闭实例来限定分配(例如 x.new A(),其中 x 是 Item 的实例)."
这是非常不言自明的:
Item machinePistol = new Item().new Weapon();
Or:
Item item = new Item();
Item machinePistol = item.new Weapon();
但是,我强烈建议将它们放在自己的类中,以便您最终可以得到:
Item machinePistol = new Weapon();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)