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 -
- Matrizes irregulares em C #
- Palíndromo em C #
- Herança em C #
- Instrução Break em Java
- Declaração de quebra em JavaScript
- Palindrome em JavaScript
- Jogue vs Joga | As 5 principais diferenças que você deve saber
- Instrução Break em Python com exemplos