我有一个名为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;
我非常需要以某种方式将我的子类强制转换为我的超类,关于如何解决这个问题的任何想法?我希望我提供了足够的信息。提前谢谢!
答案 0 :(得分:0)
Troop megaTroop = new MegaTroop();
因为所有特定类型的部队都是部队。它被称为&#34;编程到接口&#34;。这样您就可以调用方法并将对象放入列表中。