Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

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

  1. Clase y objeto de C#
  2. Clase y método abstractos de C#
  3. C# Clase parcial y método parcial
  4. Clases y objetos de C++
  5. Función amiga de C++ y Clases amigas
  6. Java - Objeto y Clases
  7. C# - Herencia
  8. C# - Polimorfismo
  9. ASTM A729 Clase A Doble Normalizado y Templado
  10. ASTM A649 Clase 2 Normalizado y Templado
  11. ASTM A288 Clase 4 templado y revenido