Partager via


final, modificateur

Déclare qu'une classe ne peut pas être étendue ou qu'une méthode ou une propriété ne peut pas être substituée.

final statement

Arguments

  • statement
    Obligatoire. Une définition de classe, de méthode ou de propriété.

Notes

Le modificateur final sert à spécifier qu'une classe ne peut pas être étendue ou qu'une méthode ou une propriété ne peut être substituée. L'utilisation de ce modificateur empêche d'autres classes de modifier le comportement de la classe en substituant des fonctions importantes. Les méthodes avec le modificateur final peuvent être masquées ou surchargées par des méthodes de classes dérivées.

Les méthodes et les propriétés des classes ainsi que les classes peuvent être marquées avec le modificateur final. Les interfaces, les champs et les membres d'interfaces ne peuvent pas accepter le modificateur final.

Vous ne pouvez pas associer le modificateur final avec l'autre modificateur d'héritage (abstract). Par défaut, les membres des classes ne sont ni abstract ni final. Il est impossible de combiner les modificateurs d'héritage avec le modificateur static.

Exemple

L'exemple ci-dessous illustre une utilisation du modificateur final. Le modificateur final empêche la méthode de classe de base d'être substituée par des méthodes de la classe dérivée.

class CBase {
   final function methodA() { print("Final methodA of CBase.") };
   function methodB() { print("Non-final methodB of CBase.") };
}

class CDerived extends CBase {
   function methodA() { print("methodA of CDerived.") };
   function methodB() { print("methodB of CDerived.") };
}

var baseInstance : CBase = new CDerived;
baseInstance.methodA();
baseInstance.methodB();

Le résultat généré par le programme montre que la méthode final n'est pas substituée :

Final methodA of CBase.
methodB of CDerived.

Configuration requise

Version .NET

Voir aussi

Référence

abstract, modificateur

hide, modificateur

override, modificateur

var, instruction

function, instruction

class, instruction

Concepts

Portée des variables et des constantes

Annotation de type

Autres ressources

Modificateurs