Ce este o clasă sigilată în C #?

O clasă sigilată este o clasă care nu permite moștenirea, ceea ce înseamnă că Clasa sigilată va restricționa utilizatorii să moștenească o clasă. O clasă sigilată definită folosind un cuvânt cheie sigilat, acel cuvânt cheie notifică compilatorul precum clasa definită este sigilată astfel încât nu poate fi extinsă și nu există nicio șansă de moștenire a unei clase specifice. Clasa sigilată restricționează o clasă derivată dintr-o clasă sigilată. Scopul principal al clasei sigilate este încetarea moștenirii clasei specifice de la alte clase. În C #, pentru securitatea codului nostru, mergem pentru o clasă sigilată, în care să putem asigura că metodele sau proprietățile specifice depind de condițiile noastre.

O clasă sigilată este o clasă în care nu putem deriva sau crea o nouă clasă. Cu alte cuvinte, Clasa sigilată nu poate fi moștenită de alte clase și folosind un modificator sigilat putem defini, de asemenea, o clasă care este declarată numită Sealed Class.

Sintaxă

sealed class _className
(
//data members
//methods
)

Cod:

sealed class Demo1 ()
class Demo2 : Demo1() //invalid

Pentru a crea orice clasă ca o clasă sigilată, trebuie să utilizăm cuvântul cheie sigilat.

Cum funcționează clasa sigilată în C #?

În general, în timp ce creăm o clasă cu ajutorul moștenirii, moștenim toate metodele și proprietățile din oricare dintre clase. Folosind clasa sigilată, putem restricționa accesul la clase și la membrii acesteia cu ajutorul unui cuvânt cheie sigilat și putem evita, de asemenea, moștenirea claselor definite de la alte clase. În C #, o clasă sigilată este o clasă care nu poate fi moștenită de o altă clasă, dar poate fi inițiată. Clasa sigilată adesea folosită în scopuri de securitate pentru a preveni clasa derivată de la utilizatorii nedoriti. În mare parte, o clasă sigilată este concepută să limiteze extensibilitatea claselor. În timp ce lucrați cu Clasa sigilată, există mai multe puncte:

  • O clasă sigilată este complet diferită de o clasă abstractă.
  • Metodele abstracte nu pot fi utilizate într-o clasă sigilată.
  • În ierarhia de moștenire, aceasta trebuie să fie clasa de jos.
  • Clasa sigilată folosită intenționat pentru a evita moștenirea.
  • Cuvântul cheie sigilat folosit cu metode, clase, proprietăți și instanță.

Să vedem procesul de lucru al clasei sigilate:

Cod:

using System;
public class DemoClass
(
public static void Main (string() args)
(
SealedDemo _sealedObject=new SealedDemo();
int result=_sealedObject.Addition(5, 5);
Console.WriteLine("Total Value="+result.ToString());
)
) //sealedClass starts here
sealed class SealedDemo
(
public int Addition(int x, int y)
(
return x+y;
)
)

ieşire:

Când clasa este definită ca sigilată, atunci acea clasă nu poate fi moștenită și, de asemenea, că Clasa sigilată nu poate fi utilizată ca clasă de bază. Sealed Class este utilizat în principal în scopul restricționării aspectului moștenirii OOP.

Metode sigilate în C #

Metodele sigilate sunt definite astfel încât metoda este o clasă părinte și că această metodă nu poate fi anulată în cadrul clasei copil. Când metoda este declarată virtuală într-o clasă, oricare dintre clasele copil poate înlocui o metodă:

Exemplul # 1

Cod:

using System;
public class Sample_Employee
(
protected int Emp_id, Emp_age;
protected string Emp_name, Emp_address;
public virtual void GetEmployeeDetails()
(
Console.WriteLine("EMPLOYEE DETAILS");
Console.WriteLine("EMPLOYEE ID");
Emp_id = int.Parse(Console.ReadLine());
Console.WriteLine("EMPLOYEE NAME");
Emp_name = Console.ReadLine();
Console.WriteLine("EMPLOYEE ADDRESS");
Emp_address = Console.ReadLine();
Console.WriteLine("EMPLOYEE AGE");
Emp_age = int.Parse(Console.ReadLine());
)
public virtual void DisplayEmployeeDetails()
(
Console.WriteLine("\nEMPLOEE DETAILS:");
Console.WriteLine("EMPLOYEE ID : " + Emp_id);
Console.WriteLine("EMPLOYEE NAME : " + Emp_name);
Console.WriteLine("EMPLOYEE ADDRESS :" + Emp_address);
Console.WriteLine("EMPLOYEE AGE : " + Emp_age);
)
)
public sealed class Emp_Manager : Sample_Employee
(
double Bonus, CA;
public override void GetEmployeeDetails()
(
Console.WriteLine("ENTER MANAGER DETAILS:");
Console.WriteLine("ENTER THE ID");
Emp_id = int.Parse(Console.ReadLine());
Console.WriteLine("ENTER THE NAME");
Emp_name = Console.ReadLine();
Console.WriteLine("ENTER THE BONUS");
Bonus = double.Parse(Console.ReadLine());
Console.WriteLine("ENTER THE CA");
CA = Convert.ToDouble(Console.ReadLine());
)
public override void DisplayEmployeeDetails()
(
Console.WriteLine("MANAGER DETAILS");
Console.WriteLine("EMPLOYEE ID: " + Emp_id);
Console.WriteLine("EMPLOYEE NAME: " + Emp_name);
Console.WriteLine("MANAGER BONUS: " + Bonus);
Console.WriteLine("MANAGER CA : " + CA);
)
)
class Program
(
static void Main(string() args)
(
Emp_Manager m1 = new Emp_Manager ();
m1.GetEmployeeDetails();
m1.DisplayEmployeeDetails();
Console.ReadKey();
)
)

ieşire:

Putem utiliza un modificator sigilat pe o proprietate sau o metodă care înlocuiește metoda virtuală din clasa de bază, ceea ce ne permite să permitem claselor să obțină de la dezvoltatorii de clasă și să asigure dezvoltatorii care folosesc clase de la proprietățile sau metodele virtuale particulare. Există câteva puncte pe care trebuie să le definim clasa sigilată:

  • Nu dorim niciodată să înlocuim toate proprietățile sau metodele unei clase din subclase
  • Nu este nevoie să ne extindem funcționalitățile clasei.

Exemplul # 2

Scopul principal al utilizării unei clase sigilate este asigurarea moștenirii unei clase; nu am solicitat nicio clasă pentru a mări funcționalitatea unei clase. Să vedem programul de probă pentru clasa sigilată:

Cod:

using System;
using System.Text;
namespace test_SealedClass
(
public class SampleProgram1
(
public sealed class TestBaseClass
(
public static void TestDisplay()
(
Console.WriteLine("Here the SealedClass cannot be inherited");
)
)
public class TestDerived : TestBaseClass
(
// here Derived class cannot be inherited because it's a sealed class
)
static void Main(string() args)
(
TestBaseClass _object = new TestBaseClass();
_object.TestDisplay();
Console.ReadLine();
)
)
)

Când încercați să derivați o clasă dintr-un compilator de clasă sigilată aruncă o eroare ". TestDerived: nu poate derivă din tipul sigilat TestBaseClass".

Avantaje în clasa sigilată

Să vedem următoarele puncte importante pe care trebuie să le luăm în considerare despre cuvântul cheie sigilat în limbajul c #:

  • În scopuri de securitate, o clasă restricționează moștenirea dacă o clasă este declarată ca o clasă sigilată.
  • Pentru clasă și metodă, C # aplică restricții atunci când utilizați cuvinte cheie sigilate.
  • Variabila locală nu este sigilată în C #
  • Este întotdeauna aplicabil atunci când utilizați anularea pentru cuvântul cheie sigilat pe proprietate sau metodă.
  • Un modificator sigilat evită moștenirea unei clase.

Concluzie

Acest articol vă va oferi o imagine mai bună a clasei sigilate și a metodei sigilate și a explicat Metoda clasificată și sigilată în C # cu câteva exemple. Sper ca acest articol să vă ajute cu cerința dvs.

Articole recomandate

Acesta este un ghid pentru clasa sigilată din C #. Aici discutăm cum funcționează clasa sigilată în c # și metodele din clasa sigilată cu avantaje. Puteți parcurge și alte articole conexe pentru a afla mai multe -

  1. C # Arrayuri zimțate
  2. Palindrom în C #
  3. Moștenire în C #
  4. Declarație de pauză în Java
  5. Declarație de pauză în JavaScript
  6. Palindrom în JavaScript
  7. Aruncă vs Aruncă | Top 5 diferențe pe care ar trebui să le știi
  8. Declarație de pauză în Python cu exemple