![]() |
При наследовании убрать public метод родитля
Реально ли при наследовании убрать public методы родителя?
Я такой информации не находил, и сомневаюсь, что это возможно. Но если вдруг есть такой способ, то пожалуйста, поделитесь. |
вам надо пересмотреть архитектуру своей программы
|
А зачем их убирать? Можно переопределить или не использовать. Наследование на то и наследование, чтобы чайлд получал все от родителя.
|
так нельзя делать идеологически. Методы которые рассчитывают на получение предка могут получать потомка и всё должно работать, поэтому все методы предка должны быть доступны.
В качестве костыля можете пометить в наследнике этот метод как deprecated и вам компилятор будет кидать варнинг. В режиме варнинг == ошибка вы не сможете скомпилировать такой код. Думаю будет работать. Также переопределив можете там кинуть IllegalOperationError, чтобы в рантайме оно падало при попытке обратиться к этому методу. Комбинация этих двух методов должна работать, хотя конечно тот ещё костыль. А может вам вместо наследования сделать композицию и руками пробросить вызовы нужных методов? |
оверрейдить и все тут
|
Цитата:
|
Метатег только прячет от автокомплита.
|
Цитата:
Добавлено через 33 секунды Вообще имхо бред, всё верно сказали. Если есть такая потребность значит проблема в архитектуре. |
Код AS3:
|
Цитата:
В С++, вон, можно "приватно" наследовать реализацию без интерфейса и открывать методы по выбору (хотя, пишут, что обычно таки композицию вместо этого используют) |
| Часовой пояс GMT +4, время: 01:04. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.