如何检查ArrayList(java)的对象

时间:2016-11-21 14:59:41

标签: java inheritance arraylist interface instanceof

我有一个抽象类Rental ...我还有两个子类,SuiteRental和SimpleRoomRental继承了Rental类。我在第三类酒店(不与其他酒店连接)中有一个ArraList,它包含对象SimpleRoomRental和SuiteRental。

所以,我想检查每个对象(可能是使用instance_of)但是我不能创建一个Rental对象(导致它的抽象类)。我应该声明什么类型的' k'对象?!?

任何想法?

public void calculateTotalRentalFees (){

      double price=0; 

      for (int i=0; i<rentals.size(); i++){

          if (k instanceof SimpleRoomRental){
            SimpleRoomRental y= new SimpleRoomRental();
            price=price + y.calculateCost();

          }else if(k instanceof SuiteRental){
              SuiteRental z=new SuiteRental();
              price=price + z.calculateCost();

          }

      }
  }

我还有一个包含calculateCost()方法的接口。

public interface Cost {

public interface Costs {
     double calculateCost();             
}    

}

谢谢你的时间

1 个答案:

答案 0 :(得分:0)

通过使用接口,您也可以同时处理它们,这是使用多态的好处,它们甚至可以为该方法实现不同的实现!

RoomRental rental = new SimpleRoomRental(); 
// You can use too: new SuiteRental();
price = price + rental.calculateCost();