Запечатаний клас

Автор: Lewis Jackson
Дата Створення: 8 Травень 2021
Дата Оновлення: 25 Червень 2024
Anonim
Уроки C#. Запечатанные, статические и абстрактные классы
Відеоролик: Уроки C#. Запечатанные, статические и абстрактные классы

Зміст

Визначення - Що означає клас Опечатаний?

Запечатаний клас у C # - це клас, який не може бути успадкований жодним класом, але може бути інстанційним.


Метою проектування закритого класу є вказівка ​​на те, що клас спеціалізований і немає необхідності розширювати його, щоб надати будь-яку додаткову функціональність шляхом успадкування, щоб перекрити його поведінку. Запечатаний клас часто використовується для інкапсуляції логіки, яку потрібно використовувати в програмі, але без будь-яких змін до неї.

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

Деякі з основних класів бібліотеки .NET Framework розроблені як герметичні класи, головним чином для обмеження розширюваності цих класів.


Вступ до Microsoft Azure та Microsoft Cloud | У цьому посібнику ви дізнаєтеся, що стосується хмарних обчислень та як Microsoft Azure може допомогти вам мігрувати та вести свій бізнес із хмари.

Техопедія пояснює клас Опечатаний

На відміну від структури, яка неявно запечатана, герметичний клас оголошується ключовим словом "запечатаний", щоб запобігти випадковому успадкуванню класу. Запечатаний клас може бути корисним лише у тому випадку, якщо він має методи з доступністю на загальнодоступному рівні. Запечатаний клас не може бути абстрактним класом, оскільки абстрактний клас призначений для отримання іншого класу, який забезпечує реалізацію абстрактних методів та властивостей.

Наприклад, герметичний клас DatabaseHelper може бути сконструйований із властивостями та методами, які можуть обслуговувати функціональні дії, пов’язані з базою даних, включаючи підключення до відкритої та закритої бази даних, отримання даних та оновлення тощо. Тому що він виконує важливі функції, які повинні не може бути підробленим перестановкою у похідних класах, це може бути розроблено як герметичний клас.


Герметизація обмежує перевагу розширюваності та перешкоджає налаштуванню типів бібліотек. Отже, клас повинен бути запечатаний після ретельного зважування впливу його пломбування. Перелік критеріїв, які слід враховувати для герметизації класу, включає:
  • Клас статичний
  • Клас містить успадкованих членів, які представляють конфіденційну інформацію
  • Клас запитується для отримання своїх атрибутів за допомогою методу відображення
  • Клас успадковує багато віртуальних членів, які потрібно запечатати
Це визначення було написано в кон. C #