Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Перекрытие методов класса-наследника


Автор: V0fka 18.6.2014, 12:45
Привет!

Сделал я свой класс наследником класса Window. Сделал в нем метод Hide(), который выполняет дополнительные действия и в конце вызывает base.Hide(). Компилятор сообщил, что этот метод скрывает метод класса наследника и если так задумано - то надо поставить ключевое слово new. Но это не ошибка, а предупреждение, т.е. можно проигнорировать.

Вопрос: ключевое слово new нужно указывать чтобы просто явно показать намерения? Или же оно привносит какое-то другое поведение в использовании метода, помеченного таким ключевым словом?

Автор: Экскалупатор 18.6.2014, 18:14
http://msdn.microsoft.com/ru-ru/library/ms173153.aspx
Цитата

Ключевое слово new сохраняет связи, дающие этот результат, однако подавляет предупреждение. Переменные, имеющие тип BaseClass, продолжают обращаться к элементам класса BaseClass, а переменная, имеющая тип DerivedClass, продолжает обращаться к элементам в классе DerivedClass в первую очередь, а затем к элементам, унаследованным от BaseClass. 

Автор: V0fka 19.6.2014, 12:50
Экскалупатор, спасибо за ссылку! Только теперь ещё переварить надо, потому что с наскоку как-то не очень понятно. smile

Если кто-то ещё попробует объяснить "простым языком" - будет супер! smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)