Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Classe e método selados em C#

Classe e método selados em C#


Neste tutorial, aprenderemos sobre a classe e o método selados em C# com a ajuda de exemplos.

Classe selada


Em C#, quando não queremos que uma classe seja herdada por outra classe, podemos declarar a classe como uma classe selada .

Uma classe selada não pode ter uma classe derivada. Usamos o sealed palavra-chave para criar uma classe selada. Por exemplo,
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();
    }
  }
}

No exemplo acima, criamos uma classe selada Animal . Aqui, estamos tentando derivar Dog classe do Animal classe.

Como uma classe selada não pode ser herdada, o programa gera o seguinte erro:
error CS0509: 'Dog': cannot derive from sealed type 'Animal'

Método selado


Durante a substituição do método, se não quisermos que um método substituído seja substituído por outra classe, podemos declará-lo como um método selado .

Usamos um sealed palavra-chave com um método substituído para criar um método selado. Por exemplo,
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();
    }
  }
}

No exemplo acima, substituímos o makeSound() método dentro do Cão classe.
// Inside the Dog class
sealed public override void makeSound() {
  Console.WriteLine("Dog Sound");
}

Observe que usamos o sealed palavra-chave com makeSound() . Isso significa que o Cachorrinho classe que herda o Dog classe não tem permissão para substituir makeSound() .



Assim, obtemos um erro
error CS0239: 'Puppy.makeSound()': cannot override inherited member 'Dog.makeSound()' because it is sealed

quando tentamos substituir ainda mais o makeSound() método dentro do Puppy classe.

Observação :Selar um método substituído impede a substituição de método na herança multinível.

Por que classe selada?


1. Usamos classes seladas para evitar herança. Como não podemos herdar de uma classe selada, os métodos da classe selada não podem ser manipulados de outras classes.

Isso ajuda a evitar problemas de segurança. Por exemplo,


sealed class A { 
  ...
}

// error code
class B : A {
  ...
}

Como classe A não pode ser herdado, classe B não pode substituir e manipular os métodos da classe A .

2. Um dos melhores usos de classes seladas é quando você tem uma classe com membros estáticos.

As Canetas classe do System.Drawing namespace é um dos exemplos da classe selada. As Canetas classe tem membros estáticos que representam as canetas com cores padrão. Pens.Blue representa uma caneta com cor azul.

Linguagem C

  1. Classe e objeto C#
  2. Classe abstrata e método C#
  3. C# Classe Parcial e Método Parcial
  4. Classes e objetos C++
  5. Função de amigo C++ e classes de amigo
  6. Java - Objeto e Classes
  7. C# - Herança
  8. C# - Polimorfismo
  9. ASTM A729 Classe A Dupla-Normalizado e Temperado
  10. ASTM A649 Classe 2 Normalizado e Temperado