Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/40: Рейтинг темы: голосов - 40, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 30.11.2015
Сообщений: 13

Интерфейсы-методы, который возвращают разные типы объектов

13.12.2015, 14:56. Показов 7564. Ответов 7

Студворк — интернет-сервис помощи студентам
Всем привет, наткнулся на такую проблему, и пока не могу решить её.
Я создаю интерфейс SomeInterface с какими-то методами. Затем я прописываю два разных класса,каждый из которых реализует интерфейс Space. Причем первый класс FirstClass основывается на массиве, а второй SecondClass- на ArrayList<>.
При объявлении метода в интерфейсе, я указываю тип возвращаемого значения(либо параметры методы)-причем этот тип/параметры я выбираю типа объект класса.Чтобы было понятно:

Java
1
2
3
4
5
6
7
8
9
Interface SomeInterface{
 
int someMethodOne(); // здесь всё понятно
 
(допустим нужно вернуть массив) someMethodTwo();//метод возвращает массив класса(нестыковка,т.к. у нас FirstClass[] и ArrayList<SecondClass>)
 
(тип объекта)    someMethodThree(); //метод возвращает объект класса,но ведь классы разные, как указать,чтобы возвращались все объекты
 
void someMethodFour(int someNumber, (тип объекта) someThing); //аналогично предыдущему,только метод без возврата
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.12.2015, 14:56
Ответы с готовыми решениями:

Унаследовать класс, чтобы методы были одни и теже, но типы данных разные
Вот, к примеру, есть у меня класс который хранит в себе char поля, и мне нужен такой же класс, только вместо char он будет содержать...

Метод который вызывает разные методы
Так вот.Есть метод,который в зависимости от того что я введу(имя метода например),должен вызывать другой метод. Думал использовать...

Что возвращают методы?
prepareurlparameters() и prepareSignedParameters() что возвращают эти методы и где они определены?? Добавлено через 4 минуты ой...

7
 Аватар для mocivan
95 / 95 / 50
Регистрация: 07.07.2015
Сообщений: 208
13.12.2015, 15:50
Лучший ответ Сообщение было отмечено Evgeij как решение

Решение

Цитата Сообщение от Evgeij Посмотреть сообщение
метод возвращает массив класса(нестыковка,т.к. у нас FirstClass[] и ArrayList<SecondClass>)
приводите к нужному типу в конкретном классе.
Цитата Сообщение от Evgeij Посмотреть сообщение
метод возвращает объект класса,но ведь классы разные,
сделайте разные методы для возврата разных классов.
Цитата Сообщение от Evgeij Посмотреть сообщение
//аналогично предыдущему,только метод без возврата
сделайте кастинг на свиче например и передавайте обджекты (не оч хорошо, лучше спроектировать по другому)
1
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
13.12.2015, 16:00
Цитата Сообщение от Evgeij Посмотреть сообщение
Я создаю интерфейс SomeInterface
Цитата Сообщение от Evgeij Посмотреть сообщение
два разных класса,каждый из которых реализует интерфейс Space
разные интерфейсы или просто писал на отвалите, типа "ну да ошибся, но и так ведь все понятно что я имел ввиду один и тот же интерфейс?"
Цитата Сообщение от Evgeij Посмотреть сообщение
ричем первый класс FirstClass основывается на массиве, а второй SecondClass- на ArrayList<>.
что значит основывается?
0
0 / 0 / 0
Регистрация: 30.11.2015
Сообщений: 13
13.12.2015, 16:11  [ТС]
Добавлено через 54 секунды
что значит основывается?
Оу,извиняюсь,интерфейсы разные, просто запутался...А так да, это один и тот же интерфейс.
Под основывается, я имел в виду то, что FirstClass использует переменную класса []firstClass, и соответсвенно SecondClass- ArrayList<> secondClass.
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
13.12.2015, 16:13
понятнее не стало, может надо рассказать реальную задачу а не абстрактные "допустим"?
0
0 / 0 / 0
Регистрация: 30.11.2015
Сообщений: 13
13.12.2015, 22:04  [ТС]
понятнее не стало, может надо рассказать реальную задачу а не абстрактные "допустим"?
Просто задание очень большое.
Java
1
2
3
4
5
6
7
class Flat//класс квартиры
{//параметры квартир(площадь,кол-во комнат и многое другое)}
class DwellingFloor//класс этажей
{Flat[] flatArr; //основан на массиве квартир и в теле класса разные параметры этажа}
class Office{}//аналогичен классу Flat
class OfficeFloor//класс этажей офисного здания
{ArrayList<Office> officeArr;}//основывается на ArrayList типа офис,в теле тоже разнообразные методы
Требуется сделать интерфейс, который будет реализовать разнообразные методы, в частоности, метод получения массива помещений(т.е. квартир либо офисов).
Вот и получается,что метод в интерфейсе должен быть один, но подходить под разные типы и классы.
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
14.12.2015, 11:55
какой бред
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
14.12.2015, 16:38
Цитата Сообщение от Evgeij Посмотреть сообщение
в частоности, метод получения массива помещений(т.е. квартир либо офисов).
оба этих класса должны иметь общего наследника с коим и будет работать интерфейс.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.12.2015, 16:38
Помогаю со студенческими работами здесь

Методы на возвращают значения!
private $section_info; $this-&gt;section_info = $this-&gt;section-&gt;getSectionOnID($this-&gt;data); public function getSectionOnID($id) { ...

Что возвращают методы?
Не могу понять что возвращают такие методы как getElementsByTagName, getElementsByClassName, querySelectorAll и т.д. только коллекцию...

Lotusscript И @-формула Возвращают Разные Значения
Две кнопки в одной панели действий на одной код на скрипте: ... ses.CurrentDatabase.QueryAccessRoles(ses.username)... - нормально...

Две разные функции возвращают одинаковые адреса!
Всем привет! Написал такую &quot;программу&quot;. Столкнулся с такой проблемой: Две функции, которые должны возвращать два разных адреса (это же две...

Ссылочные типы данных и интерфейсы
Есть некоторый проект, в котором реализованы тесты: public class GhostsTest { public void GhostVectorBreaksHashSet() ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru