Незапечатанные классы
Обновлен: Ноябрь 2007
Незапечатанный класс позволяет другим классам наследовать от него. Для многих механизмов расширения, таких как защищенные и виртуальные члены, требуется, чтобы класс был незапечатанным. Эти дополнительные механизмы являются мощным средством добавления или настройки функциональных возможностей типов, но при этом требуют значительных затрат. Незапечатанный класс может быть полезен для многих сценариев, даже без дополнительных механизмов расширения.
Рекомендуется использовать незапечатанные классы без виртуальных и защищенных членов в качестве оптимального средства недорогого, но очень полезного расширения платформы .NET Framework.
По умолчанию большинство классов не должны быть запечатанными. Это позволяет разработчикам настраивать классы для своих особых сценариев. Например, если класс незапечатан, разработчик может добавить конструктор к типу, производному от класса, и использовать этот конструктор для инициализации свойств базового класса значениями, требуемыми для сценария. Кроме того, разработчик может добавить перегрузки методов, которые передают значения по умолчанию, соответствующие реализуемым сценариям.
Фрагменты — © Корпорация Майкрософт (Microsoft Corp.), 2005. Все права защищены.
Фрагменты — © Addison-Wesley Corporation. Все права защищены.
Дополнительные сведения о рекомендациях по разработке см. в книге "Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries", Krzysztof Cwalina and Brad Abrams, Addison-Wesley, 2005.
См. также
Основные понятия
Ограничение расширяемости путем запечатывания классов