Java 将不同类型的对象存储在一个数组中以形成一个对象数组
我正在制作一个游戏,我想制作一个名为“库存”的数组,在这个数组中,我希望能够存储不同类别的不同类型的对象(如武器、瓶子、食品) 我想知道这是怎么可能的。。。 arraylist只能生成一种类型的数组…我也试过了Java 将不同类型的对象存储在一个数组中以形成一个对象数组,java,arrays,Java,Arrays,我正在制作一个游戏,我想制作一个名为“库存”的数组,在这个数组中,我希望能够存储不同类别的不同类型的对象(如武器、瓶子、食品) 我想知道这是怎么可能的。。。 arraylist只能生成一种类型的数组…我也试过了 提前感谢。让您的对象扩展一个超类,如Item并创建一个Item[]数组。让您的对象扩展一个超类,如Item并创建一个Item[]数组。让您的对象扩展一个超类,如Item并创建一个Item[]array.让您的对象扩展一个类似于Item的超类,并创建一个Item[]数组。您必须使用一个通用
提前感谢。让您的对象扩展一个超类,如
Item
并创建一个Item[]
数组。让您的对象扩展一个超类,如Item
并创建一个Item[]
数组。让您的对象扩展一个超类,如Item
并创建一个Item[]
array.让您的对象扩展一个类似于Item
的超类,并创建一个Item[]
数组。您必须使用一个通用超类/接口的数组
最简单的方法是使用对象数组(Object[]),但这包括了添加任何内容的风险
最好是创建一个所有对象都要实现的接口——即使它必须是一个标记接口——从而限制对象的种类。
当然,如果这些对象有共同的功能(例如“权重”之类的属性或“drawObject”之类的方法),那么接口实际上除了标签之外还有一些含义您必须使用共同超类/接口的数组 最简单的方法是使用对象数组(Object[]),但这包括了添加任何内容的风险 最好是创建一个所有对象都要实现的接口——即使它必须是一个标记接口——从而限制对象的种类。
当然,如果这些对象有共同的功能(例如“权重”之类的属性或“drawObject”之类的方法),那么接口实际上除了标签之外还有一些含义您必须使用共同超类/接口的数组 最简单的方法是使用对象数组(Object[]),但这包括了添加任何内容的风险 最好是创建一个所有对象都要实现的接口——即使它必须是一个标记接口——从而限制对象的种类。
当然,如果这些对象有共同的功能(例如“权重”之类的属性或“drawObject”之类的方法),那么接口实际上除了标签之外还有一些含义您必须使用共同超类/接口的数组 最简单的方法是使用对象数组(Object[]),但这包括了添加任何内容的风险 最好是创建一个所有对象都要实现的接口——即使它必须是一个标记接口——从而限制对象的种类。
当然,如果这些对象有共同的功能(例如“权重”之类的属性或“drawObject”之类的方法),那么该接口实际上除了标记之外还有一些含义让您所有的项类实现相同的接口“项”。然后使数组列表的类型为
项
或者,如果项目具有公共数据(如价格),则可以让它们都扩展同一个类
扩展同一抽象类的示例:
public abstract class Item {
private int value;
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
public class Weapon extends Item {
private int damage;
public Weapon(int value, int damage) {
this.setValue(value);
this.damage = damage;
}
}
ArrayList
声明:
List<Item> inventory = new ArrayList<Item>();
inventory.add(new Weapon(10, 25));
List inventory=new ArrayList();
增加(新武器(10、25));
让所有项目类实现相同的接口“项目”。然后使数组列表的类型为项
或者,如果项目具有公共数据(如价格),则可以让它们都扩展同一个类
扩展同一抽象类的示例:
public abstract class Item {
private int value;
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
public class Weapon extends Item {
private int damage;
public Weapon(int value, int damage) {
this.setValue(value);
this.damage = damage;
}
}
ArrayList
声明:
List<Item> inventory = new ArrayList<Item>();
inventory.add(new Weapon(10, 25));
List inventory=new ArrayList();
增加(新武器(10、25));
让所有项目类实现相同的接口“项目”。然后使数组列表的类型为项
或者,如果项目具有公共数据(如价格),则可以让它们都扩展同一个类
扩展同一抽象类的示例:
public abstract class Item {
private int value;
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
public class Weapon extends Item {
private int damage;
public Weapon(int value, int damage) {
this.setValue(value);
this.damage = damage;
}
}
ArrayList
声明:
List<Item> inventory = new ArrayList<Item>();
inventory.add(new Weapon(10, 25));
List inventory=new ArrayList();
增加(新武器(10、25));
让所有项目类实现相同的接口“项目”。然后使数组列表的类型为项
或者,如果项目具有公共数据(如价格),则可以让它们都扩展同一个类
扩展同一抽象类的示例:
public abstract class Item {
private int value;
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
public class Weapon extends Item {
private int damage;
public Weapon(int value, int damage) {
this.setValue(value);
this.damage = damage;
}
}
ArrayList
声明:
List<Item> inventory = new ArrayList<Item>();
inventory.add(new Weapon(10, 25));
List inventory=new ArrayList();
增加(新武器(10、25));
如果类实现了一个公共接口(或扩展了一个公共类),则可以声明此公共类/接口的数组。否则,对象就是答案。让您的所有项扩展一些定义任何项固有方法的超类(Item
)。由于每种类型的项目都将扩展项目
,因此您可以使用列表
,或项目[]
来存储所有项目。如果需要,您可以使用对象[]
。我的建议是创建一个item类,名为item
。然后您可以让其他类扩展它。然后创建一个项[]
。如果类实现了一个公共接口(或者扩展了一个公共类),则可以声明此公共类/接口的数组。否则,对象就是答案。让您的所有项扩展一些定义任何项固有方法的超类(Item
)。由于每种类型的项目都将扩展项目
,因此您可以使用列表
,或项目[]
来存储所有项目。如果需要,您可以使用对象[]
。我的建议是创建一个item类,名为item
。然后您可以让其他类扩展它。然后做一个I