![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Mar 2011
Сообщений: 243
|
Реально ли при наследовании убрать public методы родителя?
Я такой информации не находил, и сомневаюсь, что это возможно. Но если вдруг есть такой способ, то пожалуйста, поделитесь. |
|
|||||
|
[+4 07.04.12]
[+1 20.01.12] Регистрация: Nov 2009
Адрес: Украина, Славутич
Сообщений: 263
|
вам надо пересмотреть архитектуру своей программы
|
|
|||||
|
так нельзя делать идеологически. Методы которые рассчитывают на получение предка могут получать потомка и всё должно работать, поэтому все методы предка должны быть доступны.
В качестве костыля можете пометить в наследнике этот метод как deprecated и вам компилятор будет кидать варнинг. В режиме варнинг == ошибка вы не сможете скомпилировать такой код. Думаю будет работать. Также переопределив можете там кинуть IllegalOperationError, чтобы в рантайме оно падало при попытке обратиться к этому методу. Комбинация этих двух методов должна работать, хотя конечно тот ещё костыль. А может вам вместо наследования сделать композицию и руками пробросить вызовы нужных методов?
__________________
:) Последний раз редактировалось Aquahawk; 23.04.2012 в 20:26. |
|
|||||
|
Цитата:
Добавлено через 33 секунды Вообще имхо бред, всё верно сказали. Если есть такая потребность значит проблема в архитектуре.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
|
Lorem ipsum
|
__________________
Поймай яблоко 2! |
|
|||||
|
Цитата:
В С++, вон, можно "приватно" наследовать реализацию без интерфейса и открывать методы по выбору (хотя, пишут, что обычно таки композицию вместо этого используют) |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:13. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|