Maison > développement back-end > C++ > Override vs ombrage en C #: Quand devriez-vous utiliser chaque technique?

Override vs ombrage en C #: Quand devriez-vous utiliser chaque technique?

Linda Hamilton
Libérer: 2025-01-28 13:56:09
original
894 Les gens l'ont consulté

Overriding vs. Shadowing in C#: When Should You Use Each Technique?

La méthode de la méthode de la réécriture et de la cachette C #

En termes d'héritage, C # fournit deux technologies différentes pour redéfinir la méthode dans la classe de base: la réécriture et la cachette. Ces deux technologies ont des différences fondamentales en termes de méthodes de travail et d'influence sur la chaîne d'héritage.

Hidden

Hidden vous permet de créer une nouvelle méthode du même nom que la méthode chinoise de la Fondation, mais les mots clés ne sont pas utilisés. Cette méthode est devenue un membre local de la classe dérivée, cachant la méthode de la fondation. Lorsqu'une instance dérivée appelle la méthode cachée, elle exécutera directement l'implémentation de cette classe, quelle que soit la structure du niveau d'héritage.

Exemple: override

Dans cet exemple, la méthode est cachée dans la classe

, et la méthode
<code class="language-csharp">class A
{
   public int Foo(){ return 5;}
   public virtual int Bar(){return 5;}
}
class B : A
{
   public new int Foo() { return 1;}     //隐藏
   public override int Bar() {return 1;} //重写
}</code>
Copier après la connexion
est réécrite. Lorsque

( instance) appelle Foo, il renvoie B parce que le Bar dans clB directement. B Foo Réécriture 1 B Foo En revanche, la réécriture nécessite

Mots-clés. Il vous permet de définir la nouvelle implémentation des méthodes virtuelles dans la classe de base. Lorsque l'instance dérivée appelle la méthode de réécriture, elle sera implémentée dans la classe dérivée en fonction de la chaîne d'héritage.

Exemple:

Dans l'exemple précédent, la méthode de override

est réécrite. Lorsque appelle , il renvoie

, car dans est une réécriture.

La différence entre cachée et réécriture B Bar clB Le choix entre caché et réécriture dépend de vos besoins spécifiques: Bar 1 B Hidden: Bar Lorsque vous souhaitez masquer la méthode d'héritage de la classe de base et utiliser l'implémentation locale, utilisez Hidden.

Remervient: Lorsque vous souhaitez redéfinir la méthode d'héritage et exécuter l'implémentation de la classe dérivée, utilisez la réécriture.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal