我正在与英雄有一个库存充满了对象的小游戏。我的对象类继承武器类和护甲类的继承关系
public enum Objects_type
{
WEAPON,
ARMOR
}
public abstract class Objects_class
{
protected String name;
protected Objects_type type;
public Objects_class(String name, Objects_type type)
{
this.name = name;
this.type = type;
}
}
public abstract class Armor extends Objects_class{
int life = 0;
int res_fire = 0;
public Armor(String name, int largeur, int hauteur) {
super(name, Objects_type.ARMOR);
}
}
public abstract class Weapon extends Objects_class
{
protected int dmg_fire = 0;
public Weapon(String name) {
super(name, Objects_type.WEAPON);
}
}
public class StickOfJoy extends Weapon{
public StickOfJoy() {
super("Stick of Joy");
dmg_fire = 2;
}
}
public class ArmorOfPity extends Armor{
public ArmorOfPity()
{
super("Armor of Pity");
life = 30;
}
}
然后,我有这样的功能:
Hero.getObject (Objects_class obj)
{
if (obj.getType == Objects_type.WEAPON)
....
}
我希望能够考虑Objects_class OBJ作为武器,但当然这是不可能的(铸造母亲的孩子),所以它让我觉得我的继承结构很糟糕。
我该怎么做?
请标签的编程语言和/或框架您使用的问题。不要让我们通过语法来推断。 –
我的建议取决于你在if(obj.getType == ...)中做什么。 – arynaq
@JonathonReinhart完成了,对不起。 – IggY