Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
7 семестр / Учебники / Все лекции С# / Все лекции С# / Лекция 15. Наследование. Виртуальные функции.Переопределение.doc
Скачиваний:
146
Добавлен:
24.02.2016
Размер:
64.51 Кб
Скачать

Закрытые (изолированные) классы и методы

С# позволяет объявлять классы и методы как sealed (закрытые). В случае класса это означает, что от него нельзя ничего наследовать. В случае метода это значит, что его нельзя переопределить.

sealed class my//закрытый класс

{

public sealed override void f();//закрытый метод

}

classderived:my//ОШИБКА

Закрытые классы служат для обеспечения внутренних действий программиста и попытка переопределить функциональность такого класса приведет к ошибкам. Закрытыми классы объявляются также из коммерческих соображений. Так например string-закрытый класс. Но это и ограничивает использованием таких классов.

Смысл объявления закрытым метода (защита авторских прав) – если метод уже переопределен от базового класса и разработчик не хочет, чтобы его переопределяли дальше по иерархии. Такие методы не должны быть виртуальными, а “sealed” говорит о том, что такое переопределение этого метода является “финальным”.