Comment empêcher une classe d'être héritée en C #?
-
03-07-2019 - |
Question
En Java, je pouvais le faire avec le mot clé "final". Je ne vois pas «final» en C #. Y a-t-il un substitut?
La solution
Vous recherchez le mot clé sealed
. Il fait exactement ce que fait le mot clé final
en Java. Toute tentative d'héritage entraînera une erreur de compilation.
Autres conseils
Sachez également que "je ne pense pas que quiconque ait besoin d'hériter de ce". n’est pas une bonne raison d’utiliser "scellé". Sauf si vous avez un besoin spécifique de vous assurer qu'une implémentation particulière est utilisée, laissez la classe non scellée.
Comme Joel l'a déjà indiqué, vous pouvez utiliser sealed
au lieu de final
en C #.
http://en.csharp-online.net/CSharp_FAal_FAQ_Does_CSharp_support_support
Le modificateur sealed
fera ce que final
fait en Java.
De plus, bien que ce ne soit probablement pas ce que vous recherchez dans cette situation, le fait de marquer une classe comme statique
l'empêche également d'être hérité (il devient scellé en coulisse).
Le mot clé sealed
fonctionnerait, mais vous pouvez toujours dériver de la classe à l'aide de réflexion IIRC.