Che cos'è una classe sigillata in C #?

Una Classe Sealed è una classe che non consente l'ereditarietà, il che significa che la Classe Sealed limiterà gli utenti a ereditare una classe. Una classe sigillata definita utilizzando una parola chiave sigillata, tale parola chiave notifica al compilatore come la classe definita è sigillata in modo che non possa essere estesa e non vi è alcuna possibilità di ereditare una classe specifica. Classe sigillata limita una classe derivata da una classe sigillata. Lo scopo principale della classe sigillata è di smettere di ereditare la classe specifica da altre classi. In C #, per la nostra sicurezza del codice, optiamo per una classe sigillata, in cui possiamo garantire l'override di determinati metodi o proprietà in base alle nostre condizioni.

Una classe sigillata è una classe in cui non possiamo derivare o creare una nuova classe. In altre parole, la Classe sigillata non può essere ereditata da altre classi e utilizzando un modificatore sigillato possiamo anche definire una classe che viene dichiarata chiamata Classe sigillata.

Sintassi

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

Codice:

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

Per creare qualsiasi classe come classe chiusa dobbiamo usare la parola chiave sigillata.

Come funziona la classe sigillata in C #?

In generale, durante la creazione di una classe con l'aiuto dell'ereditarietà ereditiamo tutti i metodi e le proprietà in una qualsiasi delle classi. Usando la classe sigillata, possiamo limitare l'accesso alle classi e ai suoi membri con l'aiuto di una parola chiave sigillata e possiamo anche evitare di ereditare le classi definite da altre classi. In C #, una classe sigillata è una classe che non può essere ereditata da un'altra classe ma può essere istanziata. Classe sigillata spesso utilizzata a fini di sicurezza per impedire la classe derivata da utenti indesiderati. Una classe sigillata è per la maggior parte progettata per delimitare l'estensibilità delle classi. Ci sono diversi punti mentre si lavora con Sealed Class, sono:

  • Una classe sigillata è completamente diversa da una classe astratta.
  • I metodi astratti non possono essere utilizzati in una classe sigillata.
  • Nella gerarchia ereditaria, deve essere la classe più in basso.
  • Classe sigillata usata appositamente per evitare l'eredità.
  • La parola chiave sigillata utilizzata con metodi, classi, proprietà e istanza.

Vediamo il processo di lavoro della classe sigillata:

Codice:

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;
)
)

Produzione:

Quando la classe è definita sigillata, quella classe non può essere ereditata e anche quella classe sigillata non può essere utilizzata come classe base. La classe sigillata viene utilizzata principalmente allo scopo di limitare l'aspetto ereditario di OOP.

Metodi sigillati in C #

I metodi sigillati sono definiti come il metodo è una classe genitore e quel metodo non può essere sovrascritto nella classe figlio. Quando il metodo viene dichiarato virtuale in una classe, qualsiasi classe figlio può sovrascrivere un metodo:

Esempio 1

Codice:

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();
)
)

Produzione:

Possiamo usare un modificatore sigillato su una proprietà o un metodo che sovrascrive il metodo virtuale nella classe base, che ci consente di consentire alle classi di derivare dalla classe e di proteggere gli sviluppatori che utilizzano le classi dall'override di particolari proprietà o metodi virtuali. Ci sono alcuni punti che dobbiamo definire la classe sigillata sono:

  • Non vogliamo mai sostituire tutte le proprietà o i metodi di una classe in sottoclassi
  • Non è necessario espandere le funzionalità della nostra classe.

Esempio n. 2

Lo scopo principale dell'uso di una classe sigillata è garantire l'eredità di una classe; non abbiamo richiesto alcuna classe per ampliare la funzionalità di una classe. Vediamo il programma di esempio per la classe sigillata:

Codice:

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();
)
)
)

Quando si tenta di derivare una classe da un compilatore di classi sigillate genera un errore. "TestDerived: impossibile derivare dal tipo sigillato TestBaseClass".

Vantaggi nella classe sigillata

Vediamo i seguenti punti importanti che dobbiamo considerare sulla parola chiave sigillata in linguaggio c #:

  • Per motivi di sicurezza, una classe limita l'eredità se una classe viene dichiarata come classe chiusa.
  • Per la classe e il metodo, C # applica restrizioni quando si usano parole chiave sigillate.
  • La variabile locale non è stata sigillata in C #
  • È sempre applicabile quando si utilizza l'override per la parola chiave sigillata su proprietà o metodo.
  • Un modificatore sigillato evita che una classe venga ereditata.

Conclusione

Questo articolo ti darà una visione migliore della classe sigillata e del metodo sigillato e spiegherà la classe sigillata e i metodi sigillati in C # con alcuni esempi. Spero che questo articolo ti aiuti con le tue esigenze.

Articoli consigliati

Questa è una guida alla classe sigillata in C #. Qui discutiamo di come funziona la classe sigillata in c # e i metodi nella classe sigillata con vantaggi. Puoi anche consultare i nostri altri articoli correlati per saperne di più -

  1. Matrici dentellate C #
  2. Palindrome in C #
  3. Eredità in C #
  4. Dichiarazione di break in Java
  5. Dichiarazione di break in JavaScript
  6. Palindrome in JavaScript
  7. Lancio contro Lancio | Le 5 differenze principali che dovresti conoscere
  8. Dichiarazione Break in Python con esempi

Categoria: