Запечатанный Класс

Автор: Lewis Jackson
Дата создания: 8 Май 2021
Дата обновления: 25 Июнь 2024
Anonim
Фишки #3 - Sealed Classes [RU, Android] / Мобильный разработчик
Видео: Фишки #3 - Sealed Classes [RU, Android] / Мобильный разработчик

Содержание

Определение - Что означает Запечатанный Класс?

Запечатанный класс в C # - это класс, который не может быть унаследован ни одним классом, но может быть создан.


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

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


Некоторые из ключевых классов в библиотеке .NET Framework разработаны как запечатанные классы, в основном для ограничения расширяемости этих классов.

Введение в Microsoft Azure и Microsoft Cloud | Из этого руководства вы узнаете, что такое облачные вычисления и как Microsoft Azure может помочь вам перенести и запустить свой бизнес из облака.

Техопедия объясняет Запечатанный Класс

В отличие от структуры, которая неявно запечатана, запечатанный класс объявляется с ключевым словом, «запечатанным», чтобы предотвратить случайное наследование класса. Запечатанный класс может быть полезен, только если у него есть методы с общедоступным уровнем доступа. Запечатанный класс не может быть абстрактным классом, поскольку абстрактный класс предназначен для получения другим классом, который обеспечивает реализацию абстрактных методов и свойств.

Например, закрытый класс DatabaseHelper может быть спроектирован со свойствами и методами, которые могут обслуживать функции действий, связанных с базой данных, включая соединение с открытой и закрытой базой данных, выборку и обновление данных и т. Д. Поскольку он выполняет важные функции, которые должны не может быть изменен путем переопределения в своих производных классах, он может быть спроектирован как закрытый класс.


Запечатывание ограничивает преимущества расширяемости и предотвращает настройку типов библиотек. Следовательно, класс должен быть запечатан после тщательного взвешивания воздействия его запечатывания. Список критериев, которые следует учитывать для герметизации класса, включает в себя:
  • Класс статический
  • Класс содержит унаследованные члены, которые представляют конфиденциальную информацию
  • Класс запрашивается для получения его атрибутов через метод отражения
  • Класс наследует много виртуальных членов, которые должны быть запечатаны
Это определение было написано в кон C #