Mikä on C-luokan suljettu luokka?

Suljettu luokka on luokka, joka ei salli perimistä, mikä tarkoittaa, että suljettu luokka rajoittaa käyttäjiä perimään luokan. Suljettu luokka, joka määritetään suljettua avainsanaa käyttämällä, tämä avainsana ilmoittaa kääntäjälle, kuten määritelty luokka on suljettu, jotta sitä ei voida laajentaa eikä tietylle luokalle ole mahdollisuutta periä. Sealed Class rajoittaa luokkaa, joka johdetaan Sealed Class -luokasta. Suljetun luokan päätarkoitus on lopettaa tietyn luokan periminen muista luokista. C #: ssä kooditurvallisuutemme vuoksi menemme suljettuun luokkaan, jossa voimme turvata tiettyjen menetelmien tai ominaisuuksien ohittamisen olosuhteista riippuen.

Suljettu luokka on luokka, josta emme voi johtaa tai luoda uutta luokkaa. Toisin sanoen, sinetöity luokka ei voi periä muille luokille, ja käyttämällä suljettua modifioijaa voidaan määritellä myös luokka, joka julistetaan nimeltään suljettu luokka.

Syntaksi

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

Koodi:

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

Jos haluat luoda minkä tahansa luokan sinetöitynä luokana, meidän on käytettävä avainsanaa sinetöity.

Kuinka tiivistetty luokka toimii C #: ssä?

Yleensä luomalla luokkaa perimän avulla me perimme kaikki menetelmät ja ominaisuudet missä tahansa luokassa. Käyttämällä sinetöityä luokkaa voimme rajoittaa pääsyä luokkiin ja sen jäseniin suljetun avainsanan avulla ja voimme myös välttää määriteltyjen luokkien perimisen muista luokista. C #: ssa suljettu luokka on luokka, jota toinen luokka ei voi periä, mutta se voidaan välittää. Suojattu luokka, jota käytetään usein turvallisuustarkoituksiin estämään johdettu luokka ei-toivotuilta käyttäjiltä. Suljettu luokka on pääosin suunniteltu rajoittamaan luokkien laajennettavuutta. Sealed Class -työkalun parissa työskennellessä on useita seikkoja:

  • Suljettu luokka on täysin erilainen kuin abstrakti luokka.
  • Tiivistelmämenetelmiä ei voida käyttää suljetussa luokassa.
  • Perintöhierarkiassa sen on oltava alhaisimman luokan.
  • Suljettu luokka, jota käytetään tarkoituksella perinnön välttämiseksi.
  • Suljettu avainsana, jota käytetään menetelmien, luokkien, ominaisuuksien ja ilmentymän kanssa.

Katsotaanpa suljetun luokan työprosessia:

Koodi:

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

lähtö:

Kun luokka on määritelty suljettuksi, luokkaa ei voida periä, eikä myöskään sitä, että suljettua luokkaa ei voida käyttää perusluokana. Suljettua luokkaa käytetään pääasiassa OOP: n perintöasteen rajoittamiseen.

Suljetut menetelmät C #: ssä

Suljetut menetelmät määritellään siten, että menetelmä on vanhemmaluokka eikä sitä voida ohittaa lasten luokassa. Kun menetelmä julistetaan luokassa virtuaaliseksi, mikä tahansa lastenluokka voi ohittaa menetelmän:

Esimerkki # 1

Koodi:

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

lähtö:

Voimme käyttää suljettua muunnosta kiinteistössä tai menetelmässä, joka ohittaa pohjaluokan virtuaalisen menetelmän, mikä antaa meille mahdollisuuden antaa luokkille johtaa luokan ja turvallisilta kehittäjiltä, ​​jotka käyttävät luokkia tietyn virtuaalisen ominaisuuden tai menetelmän ohittamisesta. On olemassa muutamia kohtia, jotka meidän on määriteltävä suljettu luokka:

  • Emme koskaan halua ohittaa kaikkia luokan ominaisuuksia tai menetelmiä alaluokissa
  • Luokkatoimintoja ei tarvitse laajentaa.

Esimerkki 2

Suljetun luokan käytön päätarkoitus on turvata luokan perintö; Emme vaadineet luokkia luokan toiminnallisuuden laajentamiseksi. Katsotaan suljetun luokan näyteohjelmaa:

Koodi:

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

Kun yrität johtaa luokkaa suljetusta luokan kääntäjästä, syntyy vikavirhe. ”TestDerived: ei voi johtaa suljetusta tyypistä TestBaseClass”.

Edut suljetussa luokassa

Katsotaanpa seuraavia tärkeitä asioita, jotka meidän on harkittava suljetusta avainsanasta c # -kielellä:

  • Turvallisuussyistä luokka rajoittaa perintöä, jos luokka julistetaan suljettuun luokkaan.
  • Luokkaan ja menetelmään C # soveltaa rajoituksia sinetöityjen avainsanojen käyttämisessä.
  • Paikallista muuttujaa ei ole sinetöity C #: een.
  • Se on aina sovellettavissa, kun käytetään suljetun avainsanan ohitusta kiinteistössä tai menetelmässä.
  • Suljettu modifioija välttää luokan perimisen.

johtopäätös

Tämä artikkeli antaa sinulle paremman kuvan suljetusta luokasta ja sinetöitystä menetelmästä ja selitti C #: n suljetun luokan ja tiivistettyjä menetelmiä muutamalla esimerkillä. Toivottavasti tämä artikkeli auttaa sinua vaatimuksissasi.

Suositellut artikkelit

Tämä on opas C-luokan sinetöityyn luokkaan. Tässä keskustellaan kuinka suljetun luokan toiminta toimii c #: ssä, ja menetelmistä suljetussa luokassa, jolla on etuja. Voit myös käydä läpi muiden aiheeseen liittyvien artikkeleidemme saadaksesi lisätietoja -

  1. C # Jagged-ryhmät
  2. Palindromi C #
  3. Perintö C #: ssä
  4. Break-lausunto Java-ohjelmassa
  5. Break lausunto JavaScript
  6. Palindrome JavaScript-muodossa
  7. Heitä vs heittää | 5 suosituinta eroa, jotka sinun pitäisi tietää
  8. Katkaise lausunto Pythonissa esimerkkien avulla