我正在尝试从存储在地图中的对象构造多个对象(我正在复制游戏对象)。但是我想要复制的类型是 GameObject 的子类型,例如 Wall 和 Turret。如果我在我的超类中声明了一个 public GameObject(GameObject go){ } 方法并在我的子类中定义了 public Turret(Turret t){ },那么 Map 中的对象会使用子类构造函数吗?我知道这对于方法是正确的,只是不确定对象。我尝试过搜索,在我看来,这似乎是一个非常基本的 oop 问题,但搜索起来很困难,任何输入都将不胜感激!:D
只是我想要的一个简短的例子。
Map<String, GameObject> equipment = new HashMap<String, GameObject>();
equipment.put("turret", new Turret(x, y));//turret extends PlaceableGameObject which extends GameObject
if(user clicks){
GameObect tempObject = new Turret(equipment.get("turret"));
tempObject.setX(click.getX());
tempObject.setY(click.getY());
board.put(tempObject);
}