Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/64: Рейтинг темы: голосов - 64, средняя оценка - 4.75
4 / 4 / 3
Регистрация: 28.09.2013
Сообщений: 152

Массив интерфейсов, как представителей классов

24.02.2016, 00:25. Показов 12742. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Скажу сразу: мне не нужно, чтобы вы решили мне задание ! Мне нужна помощь в понимании самого задания.
Смогу поговорить с преподавателем о формулировке задания только через пару дней. Лабу хочется начать делать уже сейчас. Ниже задание.

Есть класс Furniture c подклассами Chair, Table и есть интерфейс Tree c методом tree(метод выводит имя реализующего класса), а также унаследованный от Tree подинтерфейс Oak c методом oak. Класс Furniture реализует интерфейс Tree, а класс Table - Oak.
Создать массив объектов Tree, как представителей классов Chair, Table, состоящий из количества элементов, заданных параметром.
Для всех объектов массива Tree выполнить все методы, которые реализованы в соответствующих классах.
Вывод содержит название класса и название методов для каждого объекта.


Я не могу понять строчку
Создать массив объектов Tree, как представителей классов Chair, Table...
Я должен сделать массив интерфейсов Tree ? Если да, то как я буду вызывать методы классов через интерфейс ? В интерфейсе же даны только определения методов без описания.
Если просто массивы классов, то как сюда завязать интерфейс еще ?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.02.2016, 00:25
Ответы с готовыми решениями:

Как правильно составить иерархию классов\интерфейсов?
Сразу же просьба к модераторам не ругать за такой заголовок. Просто у меня не получается в двух словах описать суть проблемы. Итак, на...

Реализация интерфейсов для классов
Вопрос возможно глупый, но он мне не дает покоя. Я понимаю что такое интерфейсы, как создаются и для чего они используются, но не понятен...

Создание иерархии классов и интерфейсов
Помогите пожалуйста, нужно написать курсач на тему "создание иерархии классов и интерфейсов в предметной области животные". Я не знаю...

6
 Аватар для FatNinja
82 / 82 / 32
Регистрация: 17.02.2016
Сообщений: 226
24.02.2016, 01:39
Лучший ответ Сообщение было отмечено NikitoZZZ как решение

Решение

Цитата Сообщение от NikitoZZZ Посмотреть сообщение
Создать массив объектов Tree, как представителей классов Chair, Table...
Ваш преподаватель, должно быть, не совсем точно выразился.
Создать массив ссылок на интерфейсы Tree, который заполняется объектами классов Chair, Table...

Цитата Сообщение от NikitoZZZ Посмотреть сообщение
Я должен сделать массив интерфейсов Tree ?
Java
1
2
3
4
5
6
Tree[] trees  = new Tree[] {
    new Chair(),
    new Table(),
    new Chair(),
    new Table()
};
Цитата Сообщение от NikitoZZZ Посмотреть сообщение
Если да, то как я буду вызывать методы классов через интерфейс ?
Вы можете вызывать методы интерфейса (которые реализованы в классах).
Если у классов есть свои собственные методы, которых нет в интерфейсе - нужно ссылку на объект привести к типу нужного класса.
Java
1
2
Chair chair = (Chair)trees[0];
chait.someChairMethod();
Хотя у вас этого и нет в задании: выполнить все методы, которые реализованы
1
4 / 4 / 3
Регистрация: 28.09.2013
Сообщений: 152
24.02.2016, 02:16  [ТС]
Спасибо.
Цитата Сообщение от FatNinja Посмотреть сообщение
Tree[] trees = new Tree[] { new Chair(), new Table(), new Chair(), new Table() };
Если у меня размер массива через параметр задается, то можно как-нибудь этот массив динамически заполнить разными классами, а не одним ?
0
 Аватар для FatNinja
82 / 82 / 32
Регистрация: 17.02.2016
Сообщений: 226
24.02.2016, 02:24
Цитата Сообщение от NikitoZZZ Посмотреть сообщение
можно как-нибудь этот массив динамически заполнить разными классами, а не одним ?
Не очень понял вопрос. Он и так разными классами заполняется.
Или вы имели ввиду:
Java
1
2
3
4
Tree[] trees = new Tree[3];
trees[0] = new Chair();
trees[1] = new Table();
trees[2] = new Table();
0
4 / 4 / 3
Регистрация: 28.09.2013
Сообщений: 152
24.02.2016, 02:30  [ТС]
Цитата Сообщение от FatNinja Посмотреть сообщение
Не очень понял вопрос. Он и так разными классами заполняется.
Вы написали это руками все. А можно ли заполнить его автоматически, но разными классами используя, например, ArrayList ?
0
 Аватар для FatNinja
82 / 82 / 32
Регистрация: 17.02.2016
Сообщений: 226
24.02.2016, 02:49
Цитата Сообщение от NikitoZZZ Посмотреть сообщение
автоматически, но разными классами используя, например, ArrayList ?
Можно.
Java
1
2
3
4
5
6
7
8
9
10
final int LENGTH = 5;
List<Tree> trees = new ArrayList<>();
for (int i=0; i < LENGTH; i++) {
    int randomValue = ThreadLocalRandom.current().nextInt(0, 2); // случайное число 0 или 1
    if (randomValue == 0) {
        trees.add(new Chair());
    } else if (randomValue == 1) {
        trees.add(new Table());
    }
}
1
4 / 4 / 3
Регистрация: 28.09.2013
Сообщений: 152
24.02.2016, 02:56  [ТС]
Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.02.2016, 02:56
Помогаю со студенческими работами здесь

Java SE - Правильно ли я понимаю применение интерфейсов и абстрактных классов ?
Правильно ли я понимаю применение интерфейсов и абстрактных классов ? Созданы интерфейсы Move, Eat, Voice эти итерфесы extends интерфейс...

Можно ли реализовать в Java наследование двух классов (не интерфейсов)?
здравствуйте подскажите пожалуйста можно ли реализовать в джава наследование двух классов(не интерфейсов ) если да то как ищу , но не...

Как сделать массив классов?
У меня есть класс Questions С массивом и циклом. Я хочу сделать несколько объектов, в каждом из которых будет сам вопрос и варианты...

Как сортировать массив из классов?
Подскажите, как переделать код, чтобы он сортировал массив: (на С++ такое работает, а на java - нет) import java.util.Arrays; ...

Массив обьектов из нескольких классов! Как реализовать?
Столкнулся с заданием, в котором надо сделать массив обьектов из нескольких классов, я так подозреваю без использования коллекций(?) вот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru