Vad är en förseglad klass i C #?

En förseglad klass är en klass som inte tillåter arv, vilket innebär att den förseglade klassen kommer att begränsa användare att arva en klass. En förseglad klass definierad genom att använda ett förseglat nyckelord, det sökordet meddelar kompilatorn som den definierade klassen är förseglad så att det inte kan utökas och det finns ingen chans att ärva en specifik klass. Sealed Class begränsar en klass härrörande från en Sealed Class. Huvudsyftet med den förseglade klassen är att sluta ärva den specifika klassen från andra klasser. I C #, för vår kodsäkerhet, går vi för en förseglad klass, där vi kan säkra tvingande specifika metoder eller egenskaper beror på våra villkor.

En förseglad klass är en klass där vi inte kan härleda eller skapa en ny klass. Med andra ord, den förseglade klassen kan inte ärvas av andra klasser och genom att använda en förseglad modifierare kan vi också definiera en klass som förklaras kallad Sealed Class.

Syntax

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

Koda:

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

För att skapa någon klass som en förseglad klass måste vi använda nyckelordet förseglade.

Hur fungerar förseglad klass i C #?

I allmänhet, medan vi skapar en klass med hjälp av arv, ärver vi alla metoder och egenskaper i någon av klasserna. Genom att använda förseglad klass kan vi begränsa tillgången till klasserna och dess medlemmar med hjälp av ett förseglat nyckelord och vi kan också undvika att ärva de definierade klasserna från andra klasser. I C # är en förseglad klass en klass som inte kan ärvas av en annan klass men den kan instanseras. Sealed Class används ofta i säkerhetsskäl från att förhindra den härledda klassen från oönskade användare. En förseglad klass är till stor del utformad för att begränsa linjernas utdragbarhet. Det finns flera punkter när du arbetar med Sealed Class, de är:

  • En förseglad klass skiljer sig helt från en abstrakt klass.
  • Abstrakta metoder kan inte användas i en förseglad klass.
  • I arvhierarkin måste det vara den nedersta klassen.
  • Förseglad klass avsiktligt används för att undvika arv.
  • Det förseglade nyckelordet som används med metoder, klasser, egenskaper och instans.

Låt oss se arbetsprocessen för förseglad klass:

Koda:

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 definieras som förseglad, kan den klassen inte ärvas och den förseglade klassen kan inte användas som basklass. Sealed Class används främst i syfte att begränsa arvsaspekten av OOP.

Förslutna metoder i C #

Förslutna metoder definieras som att metoden är en överordnad klass och den metoden kan inte åsidosättas under barnklass. När metoden förklaras virtuell i en klass kan någon av barnklasserna åsidosätta en metod:

Exempel 1

Koda:

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 använda en förseglad modifierare på en egenskap eller metod som åsidosätter den virtuella metoden i basklassen, vilket gör att vi kan låta klasser härleda från klass och säkra utvecklare som använder klasser från att åsidosätta vissa virtuella egenskaper eller metoder. Det är några punkter som vi måste definiera den förseglade klassen är:

  • Vi vill aldrig åsidosätta alla egenskaper eller metoder för en klass i underklasser
  • Det finns inget behov av att utöka våra klassfunktioner.

Exempel 2

Det huvudsakliga syftet med att använda en förseglad klass är att säkra en klass arv; Vi krävde inga klasser för att förstora funktionaliteten i en klass. Låt oss se provprogrammet för den förseglade klassen:

Koda:

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 försöker härleda en klass från en förseglad klass kompilator kastar ett felfel. ”TestDerived: kan inte härleda från den förseglade typen TestBaseClass”.

Fördelar i förseglad klass

Låt oss se följande viktiga punkter som vi måste tänka på om det förseglade nyckelordet på c # språk:

  • Av säkerhetsskäl begränsar en klass arv om en klass förklaras som en förseglad klass.
  • För klass och metod tillämpar C # begränsningar när du använder förseglade nyckelord.
  • Den lokala variabeln har inte tätats i C #
  • Det är alltid tillämpligt när man använder åsidosättande för det förseglade sökordet på egendom eller metod.
  • En förseglad modifierare undviker att en klass ärvs.

Slutsats

Den här artikeln ger dig en bättre bild av den förseglade klassen och den förseglade metoden och förklarade den förseglade klassen och de förseglade metoderna i C # med några exempel. Hoppas den här artikeln hjälper dig med ditt krav.

Rekommenderade artiklar

Detta är en guide till Sealed Class i C #. Här diskuterar vi hur förseglade klasser fungerar i c #, och metoder i den förseglade klassen med fördelar. Du kan också gå igenom våra andra relaterade artiklar för att lära dig mer -

  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 kastar | Topp 5 skillnader du borde veta
  8. Break Statement i Python med exempel

Kategori: