好的,我有一个抽象类“订单”:
public abstract class Order {
protected String location;
protected double price;
public Order(double price, String location){
this.price = price;
this.location = location;
}
public abstract double calculateBill();
public String getLocation() {
return location;
}
public double getPrice() {
return price;
}
public abstract String printOrder(String format);
}
我也有 3 个实现它的类,它们是相似的,当然,它们根据税收、关税等不同地计算账单。
现在我正在尝试创建 OrderManager 类来管理它们。这是我到目前为止所拥有的
public class OrderManager {
private ArrayList<Order> orders;
public OrderManager() {
}
public OrderManager(ArrayList<Order> orders) {
this.orders = orders;
}
public void addOrder(Order o) {
orders.add(o);
}
public ArrayList<Order> getOrdersAbove(double val) {
for (Order o : orders) {
double bill = o.calculateBill();
if (bill > val)
orders.add(o);
}
return orders;
}
我在使用 getOrdersAbove 方法时遇到问题,该方法应该返回账单高于 val 的订单的数组列表。作为calculateBill 是抽象的,并在订单的每个子类中实现,我应该能够称它为正确吗?此外,如果是这种情况,那么 OrderManager 不应该扩展 Order 吗?或者只是在同一个包中可以让我调用它的方法?还是我做错了?
感谢您的任何帮助!