Mi az a zárt osztály a C # -ben?

A zárt osztály olyan osztály, amely nem engedélyezi az öröklést, azaz a zárt osztály korlátozza a felhasználókat az osztály öröklésére. Egy zárt osztály, amelyet egy lezárt kulcsszó határoz meg, ez a kulcsszó értesíti a fordítót, mint ahogyan a meghatározott osztály le van zárva, hogy azt nem lehessen kibővíteni, és nincs esély egy adott osztály öröklésére. A Sealed Class korlátozza a Sealed Classból származó osztályt. A lezárt osztály fő célja az, hogy hagyja abba az adott osztályt az egyéb osztályoktól. A C # kódkód biztonsága érdekében egy zárt osztályt veszünk igénybe, amelyben bizonyos módszerek vagy tulajdonságok felülbírálását biztosíthatjuk körülményeinktől függően.

A zárt osztály olyan osztály, ahol nem tudunk származtatni vagy új osztályt létrehozni. Más szavakkal, a zárt osztály nem örökölhető más osztályok között, és zárt módosító használatával meghatározhatjuk azt az osztályt is, amelyet Sealed Class-nek hívnak.

Szintaxis

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

Kód:

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

Bármely osztály zárt osztályként történő létrehozásához a lezárt kulcsszót kell használnunk.

Hogyan működik a zárt osztály a C # -ben?

Általánosságban elmondhatjuk, hogy miközben egy osztályt öröklés segítségével hozunk létre, az osztályok bármelyik módszerét és tulajdonságát örököljük. A zárt osztály használatával korlátozhatjuk az osztályokhoz és azok tagjaihoz való hozzáférést egy zárt kulcsszó segítségével, és elkerülhetjük a meghatározott osztályok öröklését más osztályoktól. A C # kategóriában a lezárt osztály olyan osztály, amelyet egy másik osztály nem örökölhet, de meg is realizálható. Zárt osztály, amelyet gyakran biztonsági célokra használnak, hogy megakadályozzák a nem kívánt felhasználók származtatott osztályát. A zárt osztályt nagyrészt az osztályok kiterjeszthetőségének határvonalaként tervezték. Számos szempont van a Sealed Class használatával kapcsolatban:

  • A lezárt osztály teljesen különbözik az elvont osztálytól.
  • Az elvont módszerek nem használhatók zárt osztályban.
  • Az öröklési hierarchiában a legalacsonyabb osztálynak kell lennie.
  • Az öröklés elkerülésére szándékosan lezárt osztály.
  • A módszerekkel, osztályokkal, tulajdonságokkal és példányokkal használt zárt kulcsszó.

Lássuk a zárt osztály munkafolyamatát:

Kód:

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

Kimenet:

Ha az osztály zártnak minősül, akkor az osztály nem örökölhető, és azt is, hogy a zárt osztály nem használható alaposztályként. A lezárt osztályt elsősorban az OOP öröklési szempontjának korlátozására használják.

Lezárt módszerek C # -ben

A zárt módszereket úgy definiálják, hogy a módszer egy szülői osztály, és ezt a módszert nem lehet felülbírálni a gyermekosztály alatt. Amikor a módszert virtuálisnak nyilvánítják egy osztályban, bármelyik gyermekosztály felülbírálhatja a módszert:

1. példa

Kód:

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

Kimenet:

Használhatunk zárt módosítót olyan tulajdonságon vagy módszernél, amely felülbírálja a virtuális módszert az alaposztályban, amely lehetővé teszi az osztályok számára, hogy osztályokat származtassunk azon biztonságos fejlesztőktől, akik osztályokat használnak bizonyos virtuális tulajdonságok vagy módszerek felülbírálásakor. Van néhány pont, amelyeket meg kell határoznunk a lezárt osztályhoz:

  • Soha nem akarjuk felülbírálni az osztály összes tulajdonságát vagy módszerét az alosztályokban
  • Nincs szükség az osztály funkcióinak bővítésére.

2. példa

A lezárt osztály használatának fő célja az osztály öröklésének biztosítása; nem igényeltünk osztályokat az osztály funkcionalitásának kibővítéséhez. Nézzük meg a zárt osztály mintaprogramját:

Kód:

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

Amikor egy lezárt osztály-fordítóból megpróbál levezetni egy osztályt, hibaüzenet jelenik meg.

Előnyök zárt osztályban

Lássuk a következő fontos pontokat, amelyeket figyelembe kell vennünk a lezárt kulcsszóval kapcsolatban c # nyelven:

  • Biztonsági okokból az osztály korlátozza az öröklést, ha egy osztályt zárt osztálynak nyilvánítanak.
  • Az osztályra és a módszerre a C # korlátozásokat alkalmaz zárt kulcsszavak használatakor.
  • A helyi változó nincs lepecsételve a C # -ben.
  • Ez mindig alkalmazható, ha a lezárt kulcsszó felülbírálását használja az ingatlanon vagy a módszernél.
  • A lezárt módosító elkerüli az osztály öröklését.

Következtetés

Ez a cikk jobb képet nyújt a lezárt osztályról és a lezárt módszerről, és néhány példával magyarázza a lezárt osztályt és a lezárt módszereket a C # -ben. Remélem, hogy ez a cikk segít Önnek a követelmények teljesítésében.

Ajánlott cikkek

Ez egy útmutató a C # zárt osztályhoz. Itt megvitatjuk, hogy a zárt osztály hogyan működik a c # -ben, és milyen módszerekkel jár a zárt osztály előnyeivel. Megnézheti más kapcsolódó cikkeket is, ha többet szeretne megtudni -

  1. C # egyenetlen tömbök
  2. Palindrom a C # -ben
  3. Öröklés a C # -ben
  4. Break kijelentés a Java-ban
  5. Break kijelentés a JavaScript-ben
  6. Palindrome a JavaScript-ben
  7. Dobás és dobás | Öt legfontosabb különbség, amelyet tudnia kell
  8. Break nyilatkozat a Python-ban példákkal

Kategória: