|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.11.2010, 15:36 | #1 |
Пользователь
Регистрация: 15.02.2010
Сообщений: 58
|
Вопрос по модификаторам доступа.
Всем привет.
В обычных классах мы можем изменять модификаторы доступа в методах наследников фактически произвольно. Код:
Почему: error CS0621: 'TempConsoleApplication.C.func()': virtual or abstract members cannot be private Ведь класс С не абстрактный. Почему: error CS0507: 'TempConsoleApplication.B.func()': cannot change access modifiers when overriding 'protected' inherited member 'TempConsoleApplication.Abstr.func( )' Код:
Не бывает глупых вопросов.
Глупец тот, кто не спрашивает. |
23.11.2010, 18:04 | #2 |
Форумчанин
Регистрация: 25.09.2009
Сообщений: 525
|
Потому что в первом случае эти func не имеют ничего общего, это совершенно разные функции разных классов, никак друг от друга не зависящие
оверрайд же заменяет именно ту самую функцию предка |
23.11.2010, 23:07 | #3 | |
Пользователь
Регистрация: 15.02.2010
Сообщений: 58
|
Цитата:
Да кажись сложилось в голове. Я так думаю, смысл в том, что компилятор динамически подставляет метод и для него это как бы один и тот же метод, а реализация его не волнует, лишь бы семантика метода одна и та же была. Как то так.
Не бывает глупых вопросов.
Глупец тот, кто не спрашивает. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
WI-FI: точка доступа | StudentPolitech | Компьютерное железо | 7 | 21.11.2010 12:28 |
блокирование доступа | Che Guevara | PHP | 2 | 18.10.2010 16:24 |
Ограничение доступа! | Coller | Операционные системы общие вопросы | 1 | 14.08.2010 08:52 |
Получение доступа | Ламер_001 | C/C++ Сетевое программирование | 0 | 20.01.2009 08:51 |
Вопрос по Менюшке ограничение прав доступа | danswin | Общие вопросы Delphi | 17 | 03.10.2007 16:05 |