Ok У меня есть абстрактный класс «Order»:Loop через ArrayList, чтобы получить значения абстрактного метода
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-х классов, которые реализуют ее, которые похожи, за исключением, конечно, что они calculateBill по-разному в соответствии с налогом, тарифом и т. д.
сейчас я пытаюсь создать класс 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, который должен вернуться и список массива порядков, клюв выше Валу. Будучи calcBill абстрактно и реализуется в каждом подклассе порядка, я должен просто назвать его правильным? Также, если это так, то не нужно OrderManager продлить заказ? Или просто быть в одном пакете позвольте мне назвать его методами? Или я все об этом ошибаюсь?
Спасибо за любую помощь!
У вас на самом деле проблема? Ваш код кажется разумным - вы не хотите, чтобы OrderManager был подклассом Order. – John3136
@ John3136 У меня возникли проблемы с циклом, но я думаю, что у меня это исправлено, но кто-то сказал, что мне нужны значения, которые нужно добавить к другому арраисту. Так что мне нужно объявить новый список в самом методе или он даже нужен? – user2745043