将不同类型的对象存储在一个数组中以生成对象数组

时间:2015-01-19 15:05:05

标签: java arrays

我正在制作一款游戏,其中我想创建一个名为" Inventory"我希望能够存储不同类别的不同类型的对象(如武器,瓶子,食品)

我想知道这是怎么可能的...... arraylist只能制作一种类型的数组......我也试过了。

提前感谢。

3 个答案:

答案 0 :(得分:3)

让你的对象扩展像Item这样的超类,并创建一个Item[]数组。

答案 1 :(得分:0)

您必须使用公共超类/接口的数组。

最简单的方法是使用Object(Object [])数组,但这包含了添加字面上任何东西的风险。

最好是建立一个所有对象都要实现的接口 - 即使它必须是一个标记接口 - 从而限制了对象的种类,而不是可以放在那里。 当然,如果这些对象有共同的功能(例如像“权重”这样的属性或作为“drawObject”的方法),那么界面实际上除了标记之外还有一些含义

答案 2 :(得分:0)

让所有类别的项目实现相同的界面,“项目”。然后制作Item类型的arraylist。

或者,如果项目具有共同数据(例如价格),您可以将它们扩展到同一个类别。

扩展相同抽象类的示例:

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));