В сигнатуре метода параметр базового класса, а в вызове функции наследники

Есть класс Product и его наследники (один из них, WashingMashine). Нужно в классе-обработчике (условно третий класс, Processor) написать функцию getOptimProductByPrice, которая принимает и обрабатывает и Product, и его наследников. Как это сделать?

Наследник:

public class WashingMashine extends Product {...}```

обработчик:

ArrayList<Product> commonOrder = new ArrayList<>();
ArrayList<WashingMashine> washingMashines = new ArrayList<>();

WashingMashine wm = getOptimProductByPrice(washingMashines);

public Product getOptimProductByPrice(ArrayList<Product> products){//действия}

Сейчас возникает логичная ошибка, что нужно заменить тип wahingmachines с ArrayList< Product> на ArrayList < WashingMashine >


Ответы (1 шт):

Автор решения: talex

Используй

public Product getOptimProductByPrice(List<? extends Product> products)
→ Ссылка