Što je klasa zapečaćena u C #?

Zapečaćena klasa je klasa koja ne dopušta nasljeđivanje, što znači da će zatvorena klasa ograničiti korisnike da nasljeđuju klasu. Zapečaćena klasa definirana korištenjem zapečaćene ključne riječi, ta ključna riječ obavještava prevoditelja poput definirane klase koja je zapečaćena tako da se ne može proširiti i nema šanse nasljeđivanja određene klase. Sealed Class ograničava klasu izvedenu iz klase Sealed. Glavna svrha zapečaćene klase je zaustaviti nasljeđivanje određene klase od drugih klasa. U C #, za našu sigurnost koda, tražimo zapečaćenu klasu u koju možemo osigurati prevladavanje određenih metoda ili svojstava ovisno o našim uvjetima.

Sealed Class je klasa u kojoj ne možemo izvesti ili stvoriti novu klasu. Drugim riječima, zapečaćena klasa ne može se naslijediti od strane drugih klasa i korištenjem zapečaćenog modifikatora možemo definirati i klasu koja se deklarira pod nazivom Sealed Class.

Sintaksa

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

Kodirati:

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

Za stvaranje bilo koje klase kao zapečaćene klase moramo koristiti ključnu riječ zapečaćena.

Kako djeluje zatvorena klasa u C #?

Općenito, dok stvaramo klasu uz pomoć nasljeđivanja nasljeđujemo sve metode i svojstva u bilo kojoj od klasa. Korištenjem zapečaćene klase možemo ograničiti pristup razredima i njezinim članovima uz pomoć zapečaćene ključne riječi, a također možemo izbjeći nasljeđivanje definiranih klasa od ostalih klasa. U C #, zapečaćena klasa je klasa koja ne može naslijediti druga klasa, ali može se instancirati. Zaptivena klasa koja se često koristi iz sigurnosnih razloga radi sprečavanja izvedene klase od neželjenih korisnika. Zapečaćena klasa je većim dijelom dizajnirana tako da ograniči proširivost klasa. U radu s Sealed Classom postoji nekoliko točaka, a to su:

  • Zapečaćena klasa potpuno se razlikuje od apstraktne klase.
  • Apstraktne metode se ne mogu koristiti u zatvorenoj klasi.
  • U hijerarhiji nasljeđivanja ona mora biti najniža klasa.
  • Zaptivena klasa namjerno se koristi kako bi se izbjeglo nasljeđivanje.
  • Zapečaćena ključna riječ koja se koristi s metodama, klasama, svojstvima i instancama.

Pogledajmo radni proces zapečaćene klase:

Kodirati:

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

Izlaz:

Kada je klasa definirana kao zapečaćena, tada se ta klasa ne može naslijediti, a također i da se Sealed Class ne može koristiti kao osnovna klasa. Zaptivena klasa uglavnom se koristi u svrhu ograničavanja aspekta nasljeđivanja OOP-a.

Zaptivene metode u C #

Zapečaćene metode su definirane kao da je metoda roditeljska klasa i ta se metoda ne može preglasiti pod nadređenom razredom. Kada je metoda klasificirana virtualnom u klasi, bilo koja od dječjih razreda može nadjačati metodu:

Primjer 1

Kodirati:

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

Izlaz:

Možemo koristiti zapečaćeni modifikator na svojstvu ili metodi koja nadjačava virtualnu metodu u osnovnoj klasi, što nam omogućava da klase potječu od klase i sigurne programere koji koriste klase iz nadjačavanja određenih virtualnih svojstava ili metoda. Nekoliko je točaka koje moramo definirati klase zatvorenih:

  • Nikad ne želimo nadjačati sva svojstva ili metode klase u podklasama
  • Nema potrebe za proširenjem funkcionalnosti naše klase.

Primjer 2

Glavna svrha korištenja zapečaćene klase je osiguranje nasljeđivanja klase; nisu nam potrebne nikakve klase da bismo povećali funkcionalnost klase. Pogledajmo primjer programa za zatvorene klase:

Kodirati:

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

Kada pokušavate dobiti klasu iz zatvorenog sastavljača klase, pojavljuje se greška. "TestDerived: ne može proizaći iz zapečaćenog tipa TestBaseClass".

Prednosti klase Sealed

Pogledajmo sljedeće važne točke koje moramo razmotriti o zatvorenoj ključnoj riječi na jeziku # #:

  • Radi sigurnosti, klasa ograničava nasljeđivanje ako je klasa deklarirana kao zapečaćena klasa.
  • Za klasu i metodu C # primjenjuje ograničenja kada koristite zapečaćene ključne riječi.
  • Lokalna varijabla nije zapečaćena u C #
  • Uvijek je primjenjivo kada koristite preglasavanje zapečaćene ključne riječi na entitetu ili metodi.
  • Zaptiveni modifikator izbjegava nasljeđivanje klase.

Zaključak

Ovaj će vam članak pružiti bolji prikaz klase zatvorene klase i zapečaćene metode i objasnio metode zapečaćene klase i zapečaćene metode u C # s nekoliko primjera. Nadam se da vam ovaj članak pomaže u potrazi.

Preporučeni članci

Ovo je vodič za klasu Sealed u C #. Ovdje smo raspravljali o načinu rada zatvorene klase u c # i metodama u klasi zaštićenoj s prednostima. Možete i pregledati naše druge povezane članke da biste saznali više -

  1. C # nazubljeni nizovi
  2. Palindrome u C #
  3. Nasljeđivanje u C #
  4. Izjava o prekidu u Javi
  5. Izjava o prekidu u JavaScript-u
  6. Palindrome u JavaScriptu
  7. Baciti protiv bacanja | Top 5 razlika koje biste trebali znati
  8. Izjava o prekidu u Pythonu s primjerima

Kategorija: