使用超类方法计算价格

时间:2016-11-05 22:21:35

标签: java inheritance polymorphism abstract superclass

我在继承和类的层次结构方面遇到了问题。 问题是:我有超类,其中包含数量作为属性。 该类的代码在这里:

class Items {
 private int quantity;

 public Items(int quantity) {
   this.quantity = quantity;
 }

然后我有两个包含价格和其他属性的子类。 代码段:

class Coffee extends Items {
 private String size;

 public Coffee (int quantity, String size) {
  super(quantity);
  this.size = size;
  }
}

class Donuts extends Items {
 private double price;
 private String flavour;

 public Donuts(int quantity, double price, String flavour) {
   super(quantity);
   this.price = price;
   this.flavour = flavour;
  }
}

我想要做的是计算每个对象的总价格。

我的程序读取文本文件并创建对象并将它们存储在arrayList中。我正在阅读的文本文件是这样的,请注意我已经评论了前两行只是为了解释每个令牌是什么,它们不包含在真实文件中。

  

咖啡,3,介质// 商品名称,然后是数量,然后是尺寸

     

甜甜圈,7,0.89,巧克力// 名称然后数量然后价格然后味道

     

甜甜圈,3,1.19,闪电

     

咖啡,1,大

我想计算总价而不重复代码。到目前为止我在我的超类中所做的是:

 public double totalPrice(Items x) {
   double total = 0;
   if(x instanceof Coffee) {
     total = getQuantity() * getSizePrice();
   } else {
     if (x instanceof Donuts) {
       total = totalPrice();
      }
    }
   return total;
 }


 public abstract String getSizePrice();

在我的Coffee子类中:

public double getSizePrice() {
  double priceSmall = 1.39;
  double priceMed = 1.69;
  double priceLar = 1.99;

  if(size == "small") { 
    return priceSmall;
  } else {
   if (size == "medium" ) {
     return priceMed;
    }
  }
  return priceLar;
}

我相信我正在与这个人进行讨论,所以我想知道SO社区是否可以引导我朝着正确的方向前进。如果问题令人困惑,请随意提问,我会进一步解释。 是否有可能在每个类中获得totalPrice()方法,然后通过ploymorphism,类计算main方法中这些项的价格。

0 个答案:

没有答案