|
Мишка Косолапый :)
285 / 255 / 86
Регистрация: 15.02.2012
Сообщений: 1,511
|
|
Убрать лишний метод из подкласса08.06.2016, 16:04. Показов 2380. Ответов 23
Метки нет (Все метки)
Как поступают в таких случаях, когда, к примеру, есть класс Ключ, у него куча методов, один из которых Повернуть, класс ЭлектронныйКлюч наследуется от Ключ, но электронные ключи не поворачивают, чтобы открыть дверь. Как можно в классе ЭлектронныйКлюч убрать метод Повернуть?
0
|
|
| 08.06.2016, 16:04 | |
|
Ответы с готовыми решениями:
23
Переопределить метод toString для подкласса Переопределить метод интерфейса Comparable для подкласса
|
|
155 / 154 / 53
Регистрация: 30.04.2016
Сообщений: 321
|
|
| 08.06.2016, 16:15 | |
|
Один вариант - вынести в отдельный интерфейс метод, другой - @Override этого метода с пустым телом.
1
|
|
|
27 / 27 / 24
Регистрация: 23.04.2011
Сообщений: 64
|
|
| 08.06.2016, 16:20 | |
|
Можно установить методу Повернуть уровень доступа private, и тогда он будет доступен лишь классу Ключ
0
|
|
|
Мишка Косолапый :)
285 / 255 / 86
Регистрация: 15.02.2012
Сообщений: 1,511
|
|||
| 08.06.2016, 16:26 [ТС] | |||
|
0
|
|||
|
27 / 27 / 24
Регистрация: 23.04.2011
Сообщений: 64
|
|
| 08.06.2016, 16:59 | |
|
Тогда такой вариант:
Вынести класс Ключ в отдельный пакет (Package), методу Повернуть установить уровень доступа по умолчанию, после чего в файле класса ЭлектронныйКлюч, импортировать класс Ключ (import), теперь метод Повернуть не будет виден в подклассе.
0
|
|
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 08.06.2016, 17:10 | |
|
zuxa-zuxa, если у класса ключ есть не приватный метод, он будет виден наследникам. Если вам это не подходит, стройте другую архитектуру. Правильное решение в данном случае - интерфейс или общий абстрактный класс...зависит от остальных требований \ ограничений
0
|
|
|
Мишка Косолапый :)
285 / 255 / 86
Регистрация: 15.02.2012
Сообщений: 1,511
|
||
| 09.06.2016, 19:55 [ТС] | ||
|
Что интерфейс, что абстрактный класс требует модификатора public. Пробовал в абстрактном классе и методы делать абстрактными, всё равно ошибка.
0
|
||
|
261 / 209 / 99
Регистрация: 13.12.2015
Сообщений: 1,098
|
||||||
| 09.06.2016, 20:10 | ||||||
|
совсем упрощенно
0
|
||||||
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
||
| 09.06.2016, 20:16 | ||
|
Базовый класс ключ. В нем общие методы для всех типов ключей. Метод повернуть реализовать в классе "Механический ключ" который наследует от базового. Электронный ключ так же наследует от базового и реализует свои методы. Метода "повернуть" там не будет
Добавлено через 48 секунд SergioO,
0
|
||
|
261 / 209 / 99
Регистрация: 13.12.2015
Сообщений: 1,098
|
|||
| 09.06.2016, 20:22 | |||
|
создать class BasicKey, в котором не будет никаких ротейт, от него два потомка eKey и mKey
1
|
|||
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 09.06.2016, 20:24 | |
|
0
|
|
|
261 / 209 / 99
Регистрация: 13.12.2015
Сообщений: 1,098
|
||
| 09.06.2016, 20:30 | ||
|
KEKCoGEN, 1 сообщение + вот последние сообщение топик стартера, на которое я отвечал,
Не по теме: ... слов нет - тебе заняться нечем?
0
|
||
|
Мишка Косолапый :)
285 / 255 / 86
Регистрация: 15.02.2012
Сообщений: 1,511
|
||
| 09.06.2016, 21:08 [ТС] | ||
|
1 программист создал базовый класс Ключ, в котором, к примеру, 100 методов. Потом он создал электронный ключ, в котором реализовал 10 методов, остальные - для других ключей и их реализация осталась с базового класса. Другой программист реализует какую то задачу, проект современного дома к примру... Там все ключи электронные. Так вот этот Другой программист создаёт экземпляр класса ЭлектронныйКлюч, до других ключей ему нет дела. А среда разработки показывает ему о наличии 100 методов, не правильно. Я думаю как то это правильно делается... Добавлено через 21 минуту Может плохо объясняю? Есть класс A, в котором public поля int q; и String w; Ну вот когда пишем int i = (new A). ставим точку, то среда разработки подсказывает нам только доступные варианты, то есть только поле q. Предложение написать после точки строковую переменную w не будет. Аналогично и с этими ключами нужно
0
|
||
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
||
| 09.06.2016, 21:31 | ||
|
Конечно может быть ему не нужны все 100 методов, однако обратите внимание, что у каждого вашего и вообще любого объекта есть метод notify(), который приходит из класса Object. Недумаю что вы всегда его используете, однако он есть и с этим ничего не поделаешь. Так же и в вашем примере.
0
|
||
|
Мишка Косолапый :)
285 / 255 / 86
Регистрация: 15.02.2012
Сообщений: 1,511
|
||
| 09.06.2016, 21:36 [ТС] | ||
0
|
||
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 09.06.2016, 22:05 | |
|
0
|
|
|
Мишка Косолапый :)
285 / 255 / 86
Регистрация: 15.02.2012
Сообщений: 1,511
|
||
| 09.06.2016, 22:29 [ТС] | ||
0
|
||
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 09.06.2016, 22:32 | |
|
zuxa-zuxa, если у класса ключ есть метод "повернуть" то в данном случае это неверная архитектура и ваш вариант это сделать как предложил SergioO (можно выкинуть исключение вместо вывода сообщения на экран)
1
|
|
|
3 / 2 / 1
Регистрация: 24.06.2016
Сообщений: 63
|
|
| 24.06.2016, 16:28 | |
|
Я новичок из новичков и возможно сейчас сморозну чушь, но может поменять родителя и дочерний классы местами. Т.е. сделать Электронный ключ, от него унаследовать Ключ и расширить методом повернуть, потом все остальные наследовать от Ключа?
0
|
|
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
||
| 24.06.2016, 17:07 | ||
|
0
|
||
| 24.06.2016, 17:07 | |
|
Помогаю со студенческими работами здесь
20
Убрать лишний отступ Убрать лишний текст Убрать лишний цикл foreach Как убрать лишний текст Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
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. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|