sealed (Référence C#)

Le modificateur sealed peut être appliqué aux classes, aux méthodes d'instance et aux propriétés. Une classe sealed ne peut pas être héritée. Une méthode sealed substitue une méthode dans une classe de base, mais elle-même ne peut pas être substituée davantage dans une classe dérivée quelconque. Lorsqu'il s'applique à une méthode ou une propriété, le modificateur sealed doit toujours être utilisé avec override (Référence C#).

Utilisez le modificateur sealed dans une déclaration de classe pour empêcher l'héritage de la classe, comme dans l'exemple suivant :

      sealed class SealedClass 
{
    public int x; 
    public int y;
}

L'utilisation d'une classe sealed comme classe de base ou d'un modificateur abstrait avec une classe sealed est une erreur.

Les structs sont implicitement sealed et il est impossible d'en hériter.

Pour plus d'informations sur l'héritage, consultez Héritage (Guide de programmation C#).

Exemple

// cs_sealed_keyword.cs
using System;
sealed class SealedClass
{
    public int x;
    public int y;
}

class MainClass
{
    static void Main()
    {
        SealedClass sc = new SealedClass();
        sc.x = 110;
        sc.y = 150;
        Console.WriteLine("x = {0}, y = {1}", sc.x, sc.y);
    }
}

Sortie

 
x = 110, y = 150

Dans l'exemple précédent, si vous tentez d'hériter de la classe sealed en utilisant une instruction telle que :

class MyDerivedC: SealedClass {} // Error

vous obtenez le message d'erreur :

'MyDerivedC' cannot inherit from sealed class 'SealedClass'.

Spécification du langage C#

Pour plus d'informations, consultez les sections suivantes dans Spécifications du langage C#.

  • 10.1.1.2 Classes sealed

  • 10.5.5 Méthodes sealed

Voir aussi

Référence

Mots clés C#
Classes statiques et membres de classe statique (Guide de programmation C#)
Classes abstract et sealed et membres de classe (Guide de programmation C#)
Modificateurs d'accès (Guide de programmation C#)
Modificateurs (Référence C#)

Concepts

Guide de programmation C#

Autres ressources

Référence C#