假设我们有:
类项目
:
public class Item {
private Type type;
Item(Type type) {
this.type = type;
if (type == Type.PISTOL || type == Type.AR || type == Type.SNIPER_RIFLE) {
this = new Weapon(type);
}
}
}
并且类Weapon
继承自Item
:
public class Weapon extends Item {
Bullet.Type bulletType;
int fireRate;
public Weapon(Type type) {
this.type = type;
}
}
它是从类似的地方调用的:
Item item = new Item(Item.Type.PISTOL);
我实际上知道 this
在 Java 中是不可赋值的,但我想知道如何解决这种情况。
我想分配item
新的Weapon
(如果它的类型合适)。
最佳答案
我建议这样构建:
public static Item create(Type type) {
if (type == Type.PISTOL || type == Type.AR || type == Type.SNIPER_RIFLE) {
return new Weapon(type);
} else {
return new Item(type);
}
}
关于java - 在构造函数中自分配对象其子对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50043497/