Допустим, у нас есть:
Класс Item
:
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
new Weapon
, если его тип подходит.