Hvad er en forseglet klasse i C #?

En forseglet klasse er en klasse, der ikke tillader arv, hvilket betyder, at den forseglede klasse vil begrænse brugere til at arve en klasse. En forseglet klasse defineret ved hjælp af et forseglet nøgleord, det nøgleord underretter kompilatoren som den definerede klasse er forseglet, så det ikke kan udvides, og der er ingen chance for at arve en bestemt klasse. Forseglet klasse begrænser en klasse, der stammer fra en forseglet klasse. Hovedformålet med den forseglede klasse er at stoppe med at arve den specifikke klasse fra andre klasser. I C #, for vores kodesikkerhed, går vi efter en forseglet klasse, hvor vi kan sikre altoverskyggende bestemte metoder eller egenskaber afhænger af vores forhold.

En forseglet klasse er en klasse, hvor vi ikke kan udlede eller oprette en ny klasse. Med andre ord, den forseglede klasse kan ikke arves af andre klasser, og ved hjælp af en forseglet modifikator kan vi også definere en klasse, der er erklæret kaldet forseglet klasse.

Syntaks

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

Kode:

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

For at oprette enhver klasse som en forseglet klasse skal vi bruge nøgleordet forseglet.

Hvordan fungerer forseglet klasse i C #?

Generelt, mens vi opretter en klasse ved hjælp af arv, arver vi alle metoder og egenskaber i nogen af ​​klasserne. Ved at bruge forseglet klasse kan vi begrænse adgangen til klasserne og dens medlemmer ved hjælp af et forseglet nøgleord, og vi kan også undgå at arve de definerede klasser fra andre klasser. I C # er en forseglet klasse en klasse, der ikke kan arves af en anden klasse, men den kan blive instantieret. Silled Class bruges ofte til sikkerhedsmæssige formål i at forhindre den afledte klasse fra uønskede brugere. En forseglet klasse er for det meste designet til at afgrænse klassernes udvidbarhed. Der er flere punkter, mens du arbejder med Sealed Class, de er:

  • En forseglet klasse er helt forskellig fra en abstrakt klasse.
  • Abstrakte metoder kan ikke bruges i en forseglet klasse.
  • I arvehierarkiet skal det være den nederste klasse.
  • Forseglet klasse anvendt målrettet til at undgå arv.
  • Det forseglede nøgleord, der bruges til metoder, klasser, egenskaber og instans.

Lad os se arbejdsprocessen for forseglet klasse:

Kode:

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

Produktion:

Når klassen defineres som forseglet, kan den klasse ikke arves, og den forseglede klasse kan ikke bruges som baseklasse. Silled Class bruges hovedsageligt med det formål at begrænse arveaspektet ved OOP.

Forseglede metoder i C #

Forseglede metoder defineres som, at metoden er en overordnet klasse, og at metoden ikke kan tilsidesættes under underordnet klasse. Når metoden er erklæret virtuel i en klasse, kan enhver af børneklasserne tilsidesætte en metode:

Eksempel 1

Kode:

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

Produktion:

Vi kan bruge en forseglet modifikator på en egenskab eller metode, der tilsidesætter den virtuelle metode i baseklassen, som gør det muligt for os at give klasser mulighed for at stamme fra klasse og sikre udviklere, der bruger klasser fra at tilsidesætte bestemte virtuelle egenskaber eller metoder. Der er et par punkter, som vi skal definere forseglet klasse er:

  • Vi vil aldrig tilsidesætte alle egenskaber eller metoder i en klasse i underklasser
  • Det er ikke nødvendigt at udvide vores klassefunktionaliteter.

Eksempel 2

Hovedformålet med at bruge en forseglet klasse er at sikre en arvs arv; vi krævede ingen klasser for at udvide en klasses funktionalitet. Lad os se prøveprogrammet for den forseglede klasse:

Kode:

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

Når du forsøger at udlede en klasse fra en forseglet klasse kompilator kaster en fejlfejl. ”TestDerived: kan ikke stamme fra forseglet type TestBaseClass”.

Fordele i forseglet klasse

Lad os se følgende vigtige punkter, vi skal overveje om det forseglede nøgleord på c # sprog:

  • Af sikkerhedsmæssige årsager begrænser en klasse arv, hvis en klasse erklæres som en forseglet klasse.
  • For klassen og metoden anvender C # begrænsninger, når du bruger forseglede nøgleord.
  • Den lokale variabel er ikke forseglet i C #
  • Det er altid relevant, når du bruger tilsidesættelse til det forseglede nøgleord på ejendom eller metode.
  • En forseglet modifikator undgår, at en klasse bliver arvet.

Konklusion

Denne artikel giver dig et bedre overblik over forseglet klasse og forseglet metode og forklaret den forseglede klasse og forseglede metoder i C # med få eksempler. Håber, at denne artikel hjælper dig med dit krav.

Anbefalede artikler

Dette er en guide til Silled Class i C #. Her diskuterer vi, hvordan forseglet klasse fungerer i c #, og metoder i den forseglede klasse med fordele. Du kan også gennemgå vores andre relaterede artikler for at lære mere -

  1. C # Jagged Arrays
  2. Palindrome i C #
  3. Arv i C #
  4. Break Statement i Java
  5. Break Statement i JavaScript
  6. Palindrome i JavaScript
  7. Kast vs kaster | Top 5 forskelle, du burde vide
  8. Break Statement i Python med eksempler

Kategori: