Просто интересно, можете ли вы помочь мне с моей проблемой. Вероятно, это произошло благодаря тому, что я не знал правильных ключевых слов для поиска.Как создать экземпляр (внутри метода) разных классов, реализующих один и тот же интерфейс?
Это не домашнее задание, просто анонимный ...
У меня есть интерфейс и куча внедряющих классов:
interface Fruit
Banana implements Fruit
Apple implements Fruit
....
У меня есть утилиты класс Fruit. В этом есть метод, который принимает любой Фрут и нарезает его.
public static Fruit[] slice(Fruit f, int pieces)
Как я могу объявить массив Фруктов того же типа, что и Фрукты, которые я передаю методу?
т.е. Как можно автоматизировать:
Fruit[] a = new Apple[pieces];
если я дам это яблоко?
.
редактировать: осветление
Я буду иметь такой код:
Fruit a = new Apple();
Fruit b = new Banana();
Fruit[] slices1 = FruitUtil.slice(a, 3); //slices1 should be an Apple
Fruit[] slices2 = FruitUtil.slice(b, 3); //slices2 should be a Banana
Fruit newApple = FruitUtil.copy(a); //newApple should be an Apple
Как я пишу ломтик (фрукты F, ИНТ срез) или копия (фрукты е) метод таким образом, что я создаю тот же тип Fruit, что и в аргументах (без необходимости переопределять метод для каждого типа или делать проверки экземпляра)
не «Фрукты [] а = новые компании Apple [штук]; " достаточно? Он должен работать уже. Или я не получаю ваш вопрос? –
Добавлены некоторые разъяснения для вас .. – masher