如何区别子类和父类
现有一个arraylist。里面存有若干个Item对象和DiscountedItem对象。DiscountedItem类是Item类的子类。
Item类和DiscountedItem类都有字段price。而DiscountedItem购买10以上会有优惠,所以item对象和DIscountedItem对象计算价格的方法不同。
求arraylist里所有对象的价格的总和。
我的思路是:
for(int i = 0; i < arraylist.size(); i++) {
if(arraylist.get(i)是item类){
省略.................................
}
if(arraylist.get(i)是DiscountedItem类){
省略.................................
}
}
现在问题是,不知道用什么方法判断循环中arraylist.get(i)是item类还是DiscountedItem类。
------解决方案--------------------用反射机制可不可以呢,要不然就在这两个类里加一个变量,0表示父类,1表示子类
------解决方案--------------------instanceof
------解决方案--------------------用instanceof判断
------解决方案--------------------同上。。。