我偶然发现了这种情况,但我不知道如何以正确的方式处理它:
class Coffee { }
class CoffeeMix extends Coffee {
public boolean shaken;
}
我将咖啡项目保存在数组列表中:
ArrayList<Coffee> coffees = new ArrayList<Coffee>();
所以在这个数组列表中存在普通咖啡对象和咖啡混合对象。现在我想显示所有摇晃的咖啡混合对象:
for(Coffee c : coffees) {
//here is the same problem as above
}
正如我在 stackoverflow 上读到的一些答案:instanceof 似乎是一个坏主意,因为它把 oo 背后的想法搞砸了。那么如何处理呢?