Оглавление:
Определение - Что означает Запечатанный Класс?
Запечатанный класс в C # - это класс, который не может быть унаследован ни одним классом, но может быть создан.
Целью разработки запечатанного класса является указание на то, что этот класс является специализированным, и нет необходимости расширять его для предоставления каких-либо дополнительных функциональных возможностей посредством наследования для переопределения его поведения. Запечатанный класс часто используется для инкапсуляции логики, которая должна использоваться в программе, но без каких-либо изменений в ней.
Запечатанный класс в основном используется по соображениям безопасности, так как предотвращает непреднамеренную деривацию, из-за которой производный класс может повредить реализацию, предоставленную в запечатанном классе. Поскольку запечатанный класс не может сформировать базовый класс, вызовы к запечатанным классам немного быстрее, потому что они обеспечивают определенную оптимизацию во время выполнения, такую как вызов виртуальных функций-членов в экземплярах запечатанного класса в не виртуальных вызовах. Запечатанный класс помогает в управлении версиями, не нарушая совместимость при изменении класса с запечатанного типа на незапечатанный.
Некоторые из ключевых классов в библиотеке .NET Framework разработаны как запечатанные классы, в основном для ограничения расширяемости этих классов.
Техопедия объясняет Запечатанный Класс
В отличие от структуры, которая неявно запечатана, запечатанный класс объявляется с ключевым словом, «запечатанным», чтобы предотвратить случайное наследование класса. Запечатанный класс может быть полезен, только если у него есть методы с общедоступным уровнем доступа. Запечатанный класс не может быть абстрактным классом, поскольку абстрактный класс предназначен для получения другим классом, который обеспечивает реализацию абстрактных методов и свойств.
Например, закрытый класс DatabaseHelper может быть спроектирован со свойствами и методами, которые могут обслуживать функции действий, связанных с базой данных, включая соединение с открытой и закрытой базой данных, выборку и обновление данных и т. Д. Поскольку он выполняет важные функции, которые должны не может быть изменен путем переопределения в своих производных классах, он может быть спроектирован как закрытый класс.
Запечатывание ограничивает преимущества расширяемости и предотвращает настройку типов библиотек. Следовательно, класс должен быть запечатан после тщательного взвешивания воздействия его запечатывания. Список критериев, которые следует учитывать для герметизации класса, включает в себя:- Класс статический
- Класс содержит унаследованные члены, которые представляют конфиденциальную информацию
- Класс запрашивается для получения его атрибутов через метод отражения
- Класс наследует много виртуальных членов, которые должны быть запечатаны
