Hva er en forseglet klasse i C #?

En forseglet klasse er en klasse som ikke tillater arv, noe som betyr at den forseglede klassen vil begrense brukere til å arve en klasse. En forseglet klasse definert ved å bruke et forseglet nøkkelord, det nøkkelordet varsler kompilatoren som den definerte klassen er forseglet slik at det ikke kan utvides og det ikke er noen sjanse for å arve en bestemt klasse. Silled Class begrenser en klasse som stammer fra en Silled Class. Hovedformålet med den forseglede klassen er å slutte å arve den spesifikke klassen fra andre klasser. I C #, for vår kodesikkerhet, går vi for en forseglet klasse, der vi kan sikre overordnede bestemte metoder eller egenskaper avhengig av våre forhold.

En forseglet klasse er en klasse der vi ikke kan utlede eller opprette en ny klasse. Med andre ord, den forseglede klassen kan ikke arves av andre klasser, og ved å bruke en forseglet modifikator kan vi også definere en klasse som er erklært kalt forseglet klasse.

syntax

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

Kode:

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

For å lage en klasse som en forseglet klasse må vi bruke nøkkelordet forseglet.

Hvordan fungerer forseglet klasse i C #?

Generelt sett mens vi oppretter en klasse ved hjelp av arv, arver vi alle metodene og egenskapene i noen av klassene. Ved å bruke forseglet klasse, kan vi begrense tilgangen til klassene og medlemmene ved hjelp av et forseglet nøkkelord, og vi kan også unngå å arve de definerte klassene fra andre klasser. I C # er en forseglet klasse en klasse som ikke kan arves av en annen klasse, men den kan bli formidlet. Sealed Class brukes ofte i sikkerhetshensyn fra å forhindre den avledede klassen fra uønskede brukere. En forseglet klasse er for det meste designet for å begrense linjens utvidbarhet. Det er flere punkter mens du jobber med Sealed Class, de er:

  • En forseglet klasse er helt annerledes enn en abstrakt klasse.
  • Abstrakte metoder kan ikke brukes i en forseglet klasse.
  • I arvehierarkiet må det være den nederste klassen.
  • Forseglet klasse målrettet brukt for å unngå arv.
  • Det forseglede nøkkelordet som brukes med metoder, klasser, egenskaper og forekomst.

La oss se arbeidsprosessen til 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;
)
)

Produksjon:

Når klassen er definert som forseglet, kan ikke den klassen gå i arv og heller ikke at forseglet klasse ikke kan brukes som baseklasse. Silled Class brukes hovedsakelig med det formål å begrense arveaspektet til OOP.

Forseglede metoder i C #

Forseglede metoder er definert som at metoden er en foreldreklasse og at metoden ikke kan overstyres under barneklasse. Når metoden er erklært virtuell i en klasse, kan noen av barneklassene overstyre 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();
)
)

Produksjon:

Vi kan bruke en forseglet modifikator på en egenskap eller metode som overstyrer den virtuelle metoden i baseklassen, som gjør at vi kan la klasser stamme fra klasse og sikre utviklere som bruker klasser fra å overstyre bestemte virtuelle egenskaper eller metoder. Det er noen få punkter som vi må definere forseglet klasse er:

  • Vi vil aldri overstyre alle egenskaper eller metoder for en klasse i underklasser
  • Det er ikke nødvendig å utvide klassefunksjonalitetene våre.

Eksempel 2

Hovedformålet med å bruke en forseglet klasse er å sikre arv av en klasse; vi krevde ingen klasser for å utvide funksjonaliteten til en klasse. La oss se prøveprogrammet for den forseglede klassen:

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 prøver å utlede en klasse fra en forseglet klasse kompilator kaster en feilfeil. ”TestDerived: kan ikke stamme fra forseglet type TestBaseClass”.

Fordeler i forseglet klasse

La oss se følgende viktige punkter vi trenger å vurdere om det forseglede nøkkelordet på c # språk:

  • Av sikkerhetshensyn begrenser en klasse arv hvis en klasse blir erklært som en forseglet klasse.
  • For klassen og metoden bruker C # begrensninger når du bruker forseglede nøkkelord.
  • Den lokale variabelen er ikke forseglet i C #
  • Det er alltid aktuelt når du bruker overstyring for det forseglede søkeordet på eiendom eller metode.
  • En forseglet modifikator unngår at en klasse blir arvet.

Konklusjon

Denne artikkelen vil gi deg et bedre syn på forseglet klasse og forseglet metode og forklart den forseglede klassen og forseglede metodene i C # med få eksempler. Håper denne artikkelen hjelper deg med dine krav.

Anbefalte artikler

Dette er en guide til Silled Class i C #. Her diskuterer vi hvordan forseglet klasse fungerer i c #, og metoder i den forseglede klassen med fordeler. Du kan også gå gjennom andre relaterte artikler for å lære mer -

  1. C # Jagged Arrays
  2. Palindrome i C #
  3. Arv i C #
  4. Brudderklæring i Java
  5. Brudderklæring i JavaScript
  6. Palindrome i JavaScript
  7. Kast vs kaster | Topp 5 forskjeller du burde vite
  8. Break Statement i Python med eksempler