我正在爲我的問題尋找解決方案一段時間,但我無法找到針對我的問題的答案。 我有一個抽象的類A和擴展了類A的類B和C. A和B是具體的類。 A類實現了將被V和C繼承的函數。在這個函數中,我想創建B或C的新對象 - 問題是我不知道哪個對象是那個對象。創建未知類的對象
我該如何做到這一點?
public void colision(List<Organism> organisms) {
List<Organism> temp = new ArrayList<Organism>(organisms);
temp.remove(this);
for (Organizm organism : temp){
if (this.location == organizm.getLocation()){
if (this.getClass().equals(organism.getClass())){
//here is what I need to figure out
}
else{
...
}
}
}
}
}
請言傳你如何決定你想要哪一個類。 – chrylis
向A中添加一個抽象方法'createNewInstance()'並在B和C中實現它。但是你應該在更高層次上告訴我們你想要達到什麼,因爲this.getClass()。equals organism.getClass())'是一種設計氣味。 –