Kaj je zapečateni razred v C #?

Sealed Class je razred, ki ne dovoljuje dedovanja, kar pomeni, da bo Sealed Class uporabnikom omejil podedovanje razreda. Zapečaten razred, definiran z uporabo zapečatene ključne besede, ta ključna beseda obvesti prevajalnik, kot je definiran razred zapečaten, tako da ga ni mogoče razširiti in ni možnosti, da bi podedoval določen razred. Zapečateni razred omejuje razred, ki izhaja iz zapečatenega razreda. Glavni namen zaprtega razreda je prenehati podedovati določen razred od drugih razredov. V C # za našo varnost kode poiščemo zapečaten razred, v katerem lahko zagotovimo prevladujoče določene metode ali lastnosti, ki so odvisne od naših pogojev.

Sealed Class je razred, v katerem ne moremo izpeljati ali ustvariti novega razreda. Z drugimi besedami, zapečatenega razreda ne moremo podedovati v drugih razredih in z uporabo zapečatenega modifikatorja lahko določimo tudi razred, ki se razglasi za imenovan razred zapečatenih.

Sintaksa

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

Koda:

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

Za ustvarjanje katerega koli razreda kot zapečatenega razreda moramo uporabiti ključno besedo zapečateno.

Kako zapečateni razred deluje v C #?

Na splošno pri ustvarjanju razreda s pomočjo dedovanja podedujemo vse metode in lastnosti v katerem koli od razredov. Z uporabo zaprtega razreda lahko s pomočjo zapečatene ključne besede omejimo dostop do razredov in njegovih članov, izognemo pa se tudi podedovanju določenih razredov iz drugih razredov. V C # je zapečateni razred, ki ga drug razred ne more podedovati, vendar ga je mogoče uporabiti v trenutku. Zapečateni razred, ki se pogosto uporablja v varnostne namene, da prepreči izpeljani razred pred nezaželenimi uporabniki. Zapečateni razred je večinoma zasnovan tako, da meji raztegljivost razredov. Med delom z Sealed Class obstaja več točk, in sicer:

  • Zapečaten razred se popolnoma razlikuje od abstraktnega razreda.
  • Abstraktnih metod ni mogoče uporabiti v zaprtem razredu.
  • V hierarhiji dedovanja mora biti najnižji razred.
  • Zapečaten razred se namenoma uporablja za izogibanje dedovanju.
  • Zapečatena ključna beseda, ki se uporablja z metodami, razredi, lastnostmi in primerom.

Oglejmo si delovni proces zaprtega razreda:

Koda:

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

Izhod:

Ko je razred opredeljen kot zapečaten, tega razreda ni mogoče podedovati in tudi, da Sealed Class ni mogoče uporabiti kot osnovni razred. Zapečateni razred se uporablja predvsem za omejitev dednega vidika OOP.

Zapečatene metode v C #

Zapečatene metode so opredeljene tako, da je metoda nadrejeni razred in te metode ni mogoče preglasiti pod nadrejenim razredom. Ko je metoda razglašena za virtualno v razredu, lahko kateri koli od otroških razredov preglasi način:

Primer # 1

Koda:

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

Izhod:

Za lastnost ali metodo, ki preglasi virtualno metodo v osnovnem razredu, lahko uporabimo zapečaten modifikator, ki nam omogoča, da razredi izhajajo iz razreda in zaščitijo razvijalce, ki uporabljajo razrede, ki prevladajo nad določenimi virtualnimi lastnostmi ali metodami. Obstaja nekaj točk, ki jih moramo opredeliti zapečateni razred:

  • Nikoli ne želimo preglasiti vseh lastnosti ali metod razreda v podrazredih
  • Razrednih funkcij razreda ni treba širiti.

Primer # 2

Glavni namen uporabe zaprtega razreda je zavarovanje dedovanja razreda; za povečanje funkcionalnosti razreda ne potrebujemo nobenih razredov. Poglejmo vzorčni program za zapečateni razred:

Koda:

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

Ko poskušate pridobiti razred iz zapečatenega prevajalnika razredov, napaka napake. "TestDerived: ne more izhajati iz zaprtega tipa TestBaseClass".

Prednosti v razredu zatesnjenih

Poglejmo naslednje pomembne točke, ki jih moramo upoštevati glede zapečatene ključne besede v jeziku c #:

  • Zaradi varnosti razred omeji dedovanje, če je razred razglašen za zapečaten razred.
  • Za razred in metodo C # uporablja omejitve pri uporabi zapečatenih ključnih besed.
  • Lokalna spremenljivka ni zapečatena v C #
  • Vedno je uporaben pri uporabi preglasitve za zapečateno ključno besedo v lastnosti ali metodi.
  • Zapečaten modifikator prepreči dedovanje razreda.

Zaključek

Ta članek vam bo omogočil boljši pregled nad zaprtim razredom in zapečateno metodo ter razložil metode zapečatenega razreda in zapečatene metode v C # z nekaj primeri. Upam, da vam bo ta članek pomagal pri vaši zahtevi.

Priporočeni članki

To je vodnik za razred zapečatenih v C #. Tukaj razpravljamo o tem, kako zapečaten razred deluje v c #, in o metodah v zapečatenem razredu s prednostmi. Obiščite lahko tudi druge naše sorodne članke, če želite izvedeti več -

  1. C # nazobčani nizi
  2. Palindrom v C #
  3. Dedovanje v C #
  4. Izjava o prekinitvi na Javi
  5. Izjava o prekinitvi v JavaScript
  6. Palindrome v JavaScript
  7. Vrzi proti metanju | Top 5 razlik, ki bi jih morali vedeti
  8. Izjava o prekinitvi v Pythonu s primeri