Was ist eine Sealed Class in C #?

Eine versiegelte Klasse ist eine Klasse, die keine Vererbung zulässt. Dies bedeutet, dass die versiegelte Klasse Benutzer zum Erben einer Klasse einschränkt. Eine versiegelte Klasse, die mit einem versiegelten Schlüsselwort definiert wurde. Dieses Schlüsselwort benachrichtigt den Compiler wie die definierte Klasse. Es ist versiegelt, sodass es nicht erweitert werden kann und keine Chance besteht, eine bestimmte Klasse zu erben. Sealed Class schränkt eine Klasse ein, die von einer Sealed Class abgeleitet ist. Der Hauptzweck der versiegelten Klasse besteht darin, die Vererbung der spezifischen Klasse von anderen Klassen zu beenden. In C # verwenden wir aus Gründen der Codesicherheit eine versiegelte Klasse, in der wir abhängig von unseren Bedingungen sicherstellen können, dass bestimmte Methoden oder Eigenschaften außer Kraft gesetzt werden.

Eine versiegelte Klasse ist eine Klasse, bei der wir keine neue Klasse ableiten oder erstellen können. Mit anderen Worten, die versiegelte Klasse kann nicht von anderen Klassen geerbt werden. Mit einem versiegelten Modifikator können wir auch eine Klasse definieren, die als versiegelte Klasse deklariert ist.

Syntax

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

Code:

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

Um eine Klasse als versiegelte Klasse zu erstellen, müssen Sie das Schlüsselwort seal verwenden.

Wie funktioniert Sealed Class in C #?

Im Allgemeinen erben wir beim Erstellen einer Klasse mit Hilfe der Vererbung alle Methoden und Eigenschaften in einer der Klassen. Durch die Verwendung versiegelter Klassen können wir den Zugriff auf die Klassen und ihre Mitglieder mit Hilfe eines versiegelten Schlüsselworts einschränken und auch vermeiden, die definierten Klassen von anderen Klassen zu erben. In C # ist eine versiegelte Klasse eine Klasse, die nicht von einer anderen Klasse geerbt, sondern instanziiert werden kann. Sealed Class wird häufig zu Sicherheitszwecken verwendet, um zu verhindern, dass die abgeleitete Klasse von unerwünschten Benutzern verwendet wird. Eine versiegelte Klasse wurde größtenteils entwickelt, um die Erweiterbarkeit der Klassen zu begrenzen. Bei der Arbeit mit Sealed Class gibt es mehrere Punkte:

  • Eine versiegelte Klasse unterscheidet sich grundlegend von einer abstrakten Klasse.
  • Abstrakte Methoden können in einer versiegelten Klasse nicht verwendet werden.
  • In der Vererbungshierarchie muss es die unterste Klasse sein.
  • Versiegelte Klasse, die absichtlich verwendet wird, um Vererbung zu vermeiden.
  • Das versiegelte Schlüsselwort, das mit Methoden, Klassen, Eigenschaften und Instanzen verwendet wird.

Sehen wir uns den Arbeitsprozess der versiegelten Klasse an:

Code:

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

Ausgabe:

Wenn die Klasse als versiegelt definiert ist, kann diese Klasse nicht vererbt werden und diese versiegelte Klasse kann auch nicht als Basisklasse verwendet werden. Sealed Class wird hauptsächlich verwendet, um den Vererbungsaspekt von OOP einzuschränken.

Versiegelte Methoden in C #

Versiegelte Methoden sind so definiert, dass die Methode eine übergeordnete Klasse ist und diese Methode unter der untergeordneten Klasse nicht überschrieben werden kann. Wenn die Methode in einer Klasse als virtuell deklariert wird, kann eine der untergeordneten Klassen eine Methode überschreiben:

Beispiel 1

Code:

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

Ausgabe:

Wir können einen versiegelten Modifikator für eine Eigenschaft oder Methode verwenden, der die virtuelle Methode in der Basisklasse überschreibt. Auf diese Weise können Klassen von Klassen abgeleitet werden und Entwickler schützen, die Klassen verwenden, um bestimmte virtuelle Eigenschaften oder Methoden zu überschreiben. Es gibt einige Punkte, die wir als versiegelte Klasse definieren müssen:

  • Wir möchten niemals alle Eigenschaften oder Methoden einer Klasse in Unterklassen überschreiben
  • Es besteht keine Notwendigkeit, unsere Klassenfunktionalitäten zu erweitern.

Beispiel # 2

Der Hauptzweck der Verwendung einer versiegelten Klasse besteht darin, die Vererbung einer Klasse sicherzustellen. Wir haben keine Klassen benötigt, um die Funktionalität einer Klasse zu erweitern. Sehen wir uns das Beispielprogramm für die versiegelte Klasse an:

Code:

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

Wenn Sie versuchen, eine Klasse von einem versiegelten Klassencompiler abzuleiten, wird ein Fehler ausgegeben. "TestDerived: Kann nicht vom versiegelten Typ TestBaseClass abgeleitet werden".

Vorteile in der Siegelklasse

Sehen wir uns die folgenden wichtigen Punkte an, die wir in Bezug auf das versiegelte Schlüsselwort in c # -Sprache berücksichtigen müssen:

  • Aus Sicherheitsgründen schränkt eine Klasse die Vererbung ein, wenn eine Klasse als versiegelte Klasse deklariert wird.
  • Für die Klasse und Methode wendet C # Einschränkungen an, wenn versiegelte Schlüsselwörter verwendet werden.
  • Die lokale Variable wurde in C # nicht versiegelt
  • Es ist immer anwendbar, wenn für das versiegelte Schlüsselwort für eine Eigenschaft oder Methode eine Überschreibung verwendet wird.
  • Ein versiegelter Modifikator verhindert, dass eine Klasse vererbt wird.

Fazit

In diesem Artikel erhalten Sie einen besseren Überblick über die versiegelte Klasse und die versiegelte Methode. Außerdem werden die versiegelte Klasse und die versiegelten Methoden in C # anhand einiger Beispiele erläutert. Hoffe, dieser Artikel hilft Ihnen bei Ihrer Anforderung.

Empfohlene Artikel

Dies ist eine Anleitung für Sealed Class in C #. Hier diskutieren wir, wie versiegelte Klassen in c # funktionieren und Methoden in versiegelten Klassen mit Vorteilen. Sie können auch unsere anderen verwandten Artikel durchgehen, um mehr zu erfahren -

  1. C # gezackte Arrays
  2. Palindrom in C #
  3. Vererbung in C #
  4. Break-Anweisung in Java
  5. Break-Anweisung in JavaScript
  6. Palindrom in JavaScript
  7. Werfen vs wirft | Die 5 wichtigsten Unterschiede, die Sie kennen sollten
  8. Break-Anweisung in Python mit Beispielen