Clase y método sellados de C#
Clase y método sellados de C#
En este tutorial, aprenderemos sobre la clase sellada y el método en C# con la ayuda de ejemplos.
Clase Sellada
En C#, cuando no queremos que otra clase herede una clase, podemos declarar la clase como una clase sellada .
Una clase sellada no puede tener una clase derivada. Usamos el sealed
palabra clave para crear una clase sellada. Por ejemplo,
using System;
namespace SealedClass {
sealed class Animal {
}
// trying to inherit sealed class
// Error Code
class Dog : Animal {
}
class Program {
static void Main (string [] args) {
// create an object of Dog class
Dog d1 = new Dog();
Console.ReadLine();
}
}
}
En el ejemplo anterior, hemos creado una clase sellada Animal . Aquí, estamos tratando de derivar Dog clase del Animal clase.
Dado que una clase sellada no se puede heredar, el programa genera el siguiente error:
error CS0509: 'Dog': cannot derive from sealed type 'Animal'
Método Sellado
Durante la anulación de métodos, si no queremos que otra clase anule más un método anulado, podemos declararlo como un método sellado .
Usamos un sealed
palabra clave con un método anulado para crear un método sellado. Por ejemplo,
using System;
namespace SealedClass {
class Animal {
public virtual void makeSound() {
Console.WriteLine("Animal Sound");
}
}
class Dog : Animal {
// sealed method
sealed public override void makeSound() {
Console.WriteLine("Dog Sound");
}
}
class Puppy : Dog {
// trying to override sealed method
public override void makeSound() {
Console.WriteLine("Puppy Sound");
}
}
class Program {
static void Main (string [] args) {
// create an object of Puppy class
Puppy d1 = new Puppy();
Console.ReadLine();
}
}
}
En el ejemplo anterior, hemos anulado makeSound() método dentro del Dog clase.
// Inside the Dog class
sealed public override void makeSound() {
Console.WriteLine("Dog Sound");
}
Note que hemos usado el sealed
palabra clave con makeSound() . Esto significa el Cachorro clase que hereda el Dog la clase no puede anular makeSound() .
Por lo tanto, obtenemos un error
error CS0239: 'Puppy.makeSound()': cannot override inherited member 'Dog.makeSound()' because it is sealed
cuando tratamos de anular aún más makeSound() método dentro del Puppy clase.
Nota :Sellar un método anulado evita que se anule el método en la herencia multinivel.
¿Por qué clase sellada?
1. Usamos clases selladas para evitar la herencia. Como no podemos heredar de una clase sellada, los métodos de la clase sellada no se pueden manipular desde otras clases.
Ayuda a prevenir problemas de seguridad. Por ejemplo,
sealed class A {
...
}
// error code
class B : A {
...
}
Como clase A no se puede heredar, clase B no puede anular y manipular los métodos de la clase A .
2. Uno de los mejores usos de las clases selladas es cuando tienes una clase con miembros estáticos.
Los bolígrafos clase del System.Drawing
El espacio de nombres es uno de los ejemplos de la clase sellada. Los bolígrafos La clase tiene miembros estáticos que representan los bolígrafos con colores estándar. Pens.Blue
representa un bolígrafo de color azul.
Lenguaje C
- Clase y objeto de C#
- Clase y método abstractos de C#
- C# Clase parcial y método parcial
- Clases y objetos de C++
- Función amiga de C++ y Clases amigas
- Java - Objeto y Clases
- C# - Herencia
- C# - Polimorfismo
- ASTM A729 Clase A Doble Normalizado y Templado
- ASTM A649 Clase 2 Normalizado y Templado
- ASTM A288 Clase 4 templado y revenido