O que é uma classe selada em c #?

Uma classe selada é uma classe que não permite herança, o que significa que a classe selada restringirá os usuários a herdar uma classe. Uma Classe Selada definida usando uma palavra-chave selada, que notifica o compilador como se a classe definida fosse selada para que não possa ser estendida e não haja chance de herdar uma classe específica. Classe selada restringe uma classe derivada de uma classe selada. O principal objetivo da classe selada é parar de herdar a classe específica de outras classes. Em C #, para nossa segurança de código, optamos por uma classe selada, na qual podemos garantir a substituição de métodos ou propriedades particulares, dependendo de nossas condições.

Uma classe selada é uma classe em que não podemos derivar ou criar uma nova classe. Em outras palavras, a Classe Selada não pode ser herdada por outras classes e, usando um modificador selado, também podemos definir uma classe declarada chamada Classe Selada.

Sintaxe

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

Código:

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

Para criar qualquer classe como uma classe lacrada, devemos usar a palavra-chave lacrada.

Como a classe selada funciona em c #?

Em geral, ao criar uma classe com a ajuda da herança, herdamos todos os métodos e propriedades em qualquer uma das classes. Ao usar classe selada, podemos restringir o acesso às classes e seus membros com a ajuda de uma palavra-chave selada e também podemos evitar herdar as classes definidas de outras classes. Em C #, uma classe selada é uma classe que não pode ser herdada por outra classe, mas pode ser instanciada. Classe selada frequentemente usada para fins de segurança, impedindo a classe derivada de usuários indesejados. Uma classe selada é, na maioria das vezes, projetada para limitar a extensibilidade das classes. Existem vários pontos ao trabalhar com a Classe Selada, são eles:

  • Uma classe selada é totalmente diferente de uma classe abstrata.
  • Métodos abstratos não podem ser usados ​​em uma classe selada.
  • Na hierarquia de herança, deve ser a classe mais baixa.
  • Classe selada usada propositadamente para evitar herança.
  • A palavra-chave selada usada com métodos, classes, propriedades e instância.

Vamos ver o processo de trabalho da classe selada:

Código:

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

Resultado:

Quando a classe é definida como selada, essa classe não pode ser herdada e também que a Classe Selada não pode ser usada como a classe base. A classe selada é usada principalmente com a finalidade de restringir o aspecto de herança do POO.

Métodos selados em C #

Métodos selados são definidos como o método como uma classe pai e esse método não pode ser substituído na classe filho. Quando o método é declarado virtual em uma classe, qualquer uma das classes filho pode substituir um método:

Exemplo 1

Código:

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

Resultado:

Podemos usar um modificador selado em uma propriedade ou método que substitui o método virtual na classe base, o que nos permite permitir que as classes derivem da classe e proteger desenvolvedores que usam classes de substituir propriedades ou métodos virtuais específicos. Existem alguns pontos que devemos definir classe selada são:

  • Nunca queremos substituir todas as propriedades ou métodos de uma classe nas subclasses
  • Não há necessidade de expandir nossas funcionalidades de classe.

Exemplo 2

O principal objetivo do uso de uma classe selada é garantir a herança de uma classe; não precisamos de nenhuma classe para aumentar a funcionalidade de uma classe. Vamos ver o programa de amostra para a classe selada:

Código:

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

Quando você tenta derivar uma classe de um compilador de classe selado, gera um erro de falha. ”TestDerived: não pode derivar do tipo selado TestBaseClass”.

Vantagens na classe selada

Vamos ver os seguintes pontos importantes que precisamos considerar sobre a palavra-chave selada no idioma c #:

  • Por motivos de segurança, uma classe restringe a herança se uma classe for declarada como uma classe selada.
  • Para a classe e o método, o C # aplica restrições ao usar palavras-chave seladas.
  • A variável local não foi selada em C #
  • É sempre aplicável ao usar a substituição da palavra-chave selada na propriedade ou método.
  • Um modificador selado evita que uma classe seja herdada.

Conclusão

Este artigo fornecerá uma visão melhor da classe selada e do método selado e explicou a Classe selada e os métodos selados em C # com alguns exemplos. Espero que este artigo ajude você com sua exigência.

Artigos recomendados

Este é um guia para a classe selada em C #. Aqui discutimos como a classe selada funciona em c # e os métodos na classe selada com vantagens. Você também pode consultar nossos outros artigos relacionados para saber mais -

  1. Matrizes irregulares em C #
  2. Palíndromo em C #
  3. Herança em C #
  4. Instrução Break em Java
  5. Declaração de quebra em JavaScript
  6. Palindrome em JavaScript
  7. Jogue vs Joga | As 5 principais diferenças que você deve saber
  8. Instrução Break em Python com exemplos