我有一个抽象类Specie,然后是继承自species的Animals类,再然后是我的动物类(例如Sheep)。在Animals中,我有一个方法来检查两个对象是否在地图上处于相同的位置,并且它们是相同类型的(例如Sheep和Sheep)。
如果是,则会创建另一只Sheep。但我有问题。 我尝试了类似以下的代码:
但它只是将同一对象保存在数组的两个元素中。
如果是,则会创建另一只Sheep。但我有问题。 我尝试了类似以下的代码:
Specie new_specie = this;
在我的Sheep类中有一个复制构造函数
public Sheep(Sheep new_sheep){
this(new_sheep.get_x(),new_sheep.get_y(), new_sheep.get_img());
}
然后将其保存到包含所有对象的数组中。
species[speciesAmount] = new_specie;
但它只是将同一对象保存在数组的两个元素中。
species[0]
species[2]
同一个对象。有任何想法吗?
但是还有另外一个问题,我会有更多种类的动物(例如狼),我无法处理。
new Specie(this)
因为它是一个抽象类。
如何使它调用正确的构造函数?
编辑。我解决了,我使用了clone()方法。
new Specie(this)
因为它是一个抽象类,如何使其调用适当的构造函数? - Cardano