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

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

24.02.2016, 00:25. Показов 12693. Ответов 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru