В сигнатуре метода параметр базового класса, а в вызове функции наследники
Есть класс 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)