OK、抽象クラス「Order」があります。
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;
}
請求額が val を超えている注文の配列リストを返すべき getOrdersAbove メソッドに問題があります。calculateBill であることは抽象的であり、注文の各サブクラスに実装されているので、正しいと言えますか? また、その場合、OrderManager は Order を拡張すべきではありませんか? または、同じパッケージにいるだけで、そのメソッドを呼び出すことができますか? それとも、私はそれについてすべて間違っていますか?
助けてくれてありがとう!