我在继承和类的层次结构方面遇到了问题。 问题是:我有超类,其中包含数量作为属性。 该类的代码在这里:
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方法中这些项的价格。