|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.12.2010, 18:08 | #1 |
Пользователь
Регистрация: 15.02.2010
Сообщений: 58
|
Почему модификатор доступа в интерфейсе должен быть public?
Натолкнулся на одном тест-сайте на вопрос:
Почему модификатор доступа в методе интерфейса и в соответствующем методе в классе наследнике должен быть public? А не к примеру protected, private. Ну с private итак понятно, смысл теряется, а действительно почему разработчики запретили protected, ведь в абстрактных классах protected допустим даже если метод не имеет реализации. код примера такой: Код:
Не бывает глупых вопросов.
Глупец тот, кто не спрашивает. |
09.12.2010, 19:06 | #2 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,520
|
1. Не нужно смотреть на абстрактные классы и пытаться на их основе понять интерфейсы. Это разные вещи, созданы для разных целей и по сути имеют мало общего.
2. Ну добавили мы protected в интерфейс: Код:
Код:
Если запрещать такой вызов, то зачем вообще метод добавлять в интерфейс, если его использовать никак нельзя? Ну узнаем мы, что все классы, реализующие интерфейс, внутри себя имеют такие закрытые методы и что? |
09.12.2010, 20:32 | #3 | |||
Пользователь
Регистрация: 15.02.2010
Сообщений: 58
|
Цитата:
Код:
Просто действительно интересный вопрос, хочу до конца разобраться, т.к. ответ Шилдта Цитата:
почему Цитата:
Не бывает глупых вопросов.
Глупец тот, кто не спрашивает. |
|||
09.12.2010, 21:06 | #4 | |
Форумчанин
Регистрация: 25.09.2009
Сообщений: 534
|
Цитата:
|
|
09.12.2010, 21:14 | #5 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,520
|
Интерфейс как раз и показывает то, что должно быть доступно всем (protected сюда уже не подходит). Интерфейсы не наследуют, их реализуют, т.е. интерфейс не отражает природу свойства/метода, он отражает его наличие. Поэтому public - это не гладиолус, а аксиома. Просто суть интерфейсов не поняли еще и путаете с абстрактными классами. Позже понимание само прийдёт. Я просто не знаю даже как это объяснить
|
09.12.2010, 21:33 | #6 | |
Пользователь
Регистрация: 15.02.2010
Сообщений: 58
|
Цитата:
Пока отложу этот вопрос.
Не бывает глупых вопросов.
Глупец тот, кто не спрашивает. |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Регистрация на сайте журнала: быть или не быть | Levsha100 | Свободное общение | 12 | 12.06.2010 00:39 |
какой тип должен быть у массива? | ВикторияЯ | Паскаль, Turbo Pascal, PascalABC.NET | 8 | 21.05.2010 10:21 |
Быть или не быть? Вот в чем вопрос! | VadEr | Свободное общение | 8 | 23.09.2009 16:16 |
Почему 40 минут не было доступа этим вечером | Alar | О форуме и сайтах клуба | 5 | 28.11.2008 19:42 |
TreeView2.Items.Item[j+1].text забито мусором, а должен быть текст | AlDelta | Общие вопросы Delphi | 1 | 07.09.2007 16:37 |