public class FoodStorage{
ArrayList<Food> foodList = new ArrayList<Food>();
FoodStorage (ArrayList<Food> foodToStore){
foodList.addAll(foodToStore);
}
public void removeFood(Food food){
foodList.remove(food);
}
}
public abstract class Food{
boolean rotten;
int daysOld;
abstract void spoil();
}
public class Meat extends Food(){
}
public class Fruit extends Food{
}
public class Apple extends Fruit{
}
public class Pear extends Fruit{
}
如果我將一個水果對象傳遞給removeFood方法,它會從數組列表中刪除第一個蘋果或梨,因爲它們也是水果或不是?我想要數組列表刪除第一個是任何類型水果的對象,我認爲使水果具體而不是抽象可能有助於解決這個問題。從數組列表中刪除子對象
您是否嘗試過運行代碼來檢查? – airos
是的,它不會刪除子類水果infact創建一個新的對象,你想刪除和調用列表的remove(Object)方法什麼也不做。 – Macmanmatty