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

Автор: Lewis Jackson
Дата На Създаване: 8 Може 2021
Дата На Актуализиране: 25 Юни 2024
Anonim
Правительство поручает школьникам убить своего нового учителя-мутанта
Видео: Правительство поручает школьникам убить своего нового учителя-мутанта

Съдържание

Определение - Какво означава запечатан клас?

Запечатан клас в C # е клас, който не може да бъде наследен от никой клас, но може да бъде инстанциран.


Намерението на дизайна на запечатан клас е да посочи, че класът е специализиран и не е необходимо да го разширява, за да осигури някаква допълнителна функционалност чрез наследяване, за да отмени поведението му. Запечатан клас често се използва за капсулиране на логика, която трябва да се използва в цялата програма, но без промяна към нея.

Запечатан клас се използва най-вече от съображения за сигурност, като предотвратява неволно извеждане, чрез което производният клас може да повреди реализацията, предоставена в запечатания клас. Тъй като запечатаният клас не може да формира базов клас, обажданията към запечатаните класове са малко по-бързи, защото те дават възможност за определени оптимизации по време на изпълнение, като извикване на функции на виртуални членове в случаи на запечатан клас в не-виртуални извиквания. Запечатаният клас помага при версията, като не нарушава съвместимостта, докато променя клас от запечатан тип в незапечатан.

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


Въведение в Microsoft Azure и Microsoft Cloud | В това ръководство ще научите какво представлява компютърните изчисления и как Microsoft Azure може да ви помогне да мигрирате и стартирате бизнеса си от облака.

Техопедия обяснява Запечатан клас

За разлика от структура, която е имплицитно запечатана, запечатан клас се декларира с ключовата дума „запечатан“, за да се предотврати случайно наследяване на класа. Запечатан клас може да бъде полезен само ако има методи с достъпност на обществено ниво. Запечатан клас не може да бъде абстрактен клас, тъй като абстрактният клас е предназначен да бъде изведен от друг клас, който осигурява реализация на абстрактните методи и свойства.

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


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