我在学校做游戏。我有武器这是项目的一个子类。 而我在我的课堂上有一个名为BattleGround
的字段currentWeapon
。我有一个方法来搜索和遍历我的“背包”中的所有项目。我希望也可以用这个武器,因为它们也是物品。一个子类可以被称为它的超类的类型吗?
我所希望的是,Weapon
类的一个对象也可以称为一个项目。但我只是不知道。我是否需要一种新方法来遍历Weapon
? Weapon
s和Item
s都要存放在同一个背包里。
如果我存储领域currentWeapon
为Weapon
,我不能使用的方法,也许不存储Weapon
S IN String
的Hashmap
S和Item
秒。如果我将它作为Item
存储,则不能使用Weapon
类的方法。谢谢。
一个例子会让我更容易理解我的猜测。 – Kai 2013-04-04 08:02:42
是的,一个子类的定义之一是它可以在任何需要其超类的实例的地方使用。所以,就你的情况而言,如果'Weapon extends Item'和有接受Item的代码,它也会接受一个'Weapon'。 – miorel 2013-04-04 08:04:04
是的,我明白,但这是一个相当容易的问题,虽然不是吗? 武器可以像物品一样对待吗?一个子类可以像超类的类型一样对待吗? 可以将子类武器的对象存储在HashMap中吗? –
2013-04-04 08:06:18