日期:2014-05-20  浏览次数:20940 次

如何区别子类和父类
现有一个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判断
------解决方案--------------------
同上。。。