将子类置于超类列表中

时间:2014-12-08 14:22:36

标签: java

我有一个名为Troop的抽象超类和一些具有不同属性的子类。我正在制作一个游戏,在我的游戏中我有这些按钮来为游戏板(Troop的子类)添加不同的部队。我有这个方法:

public void addTroop(Troop troop)
{
    // Got a list called troopList in my main class
    main.troopList.add(troop);
}

应该将不同的部队添加到我的主要功能列表中。但是因为有不同的部队,megaTroop,fastTroop等......这搞砸了,因为列表不会采取所有不同的类型。该按钮调用此addTroop方法。我知道它失败了因为我写了:

MegaTroop megaTroop = new MegaTroop();

并尝试将其插入到如下所示的列表中:public List<Troop> troopList;

我非常需要以某种方式将我的子类强制转换为我的超类,关于如何解决这个问题的任何想法?我希望我提供了足够的信息。提前谢谢!

1 个答案:

答案 0 :(得分:0)

Troop megaTroop = new MegaTroop();

因为所有特定类型的部队都是部队。它被称为&#34;编程到接口&#34;。这样您就可以调用方法并将对象放入列表中。