Maison >développement back-end >C++ >Quelle est la différence entre l'observation de la méthode et le remplacement en C #?
En C #, la classe dérivée peut faire fonctionner la méthode de la classe de base de deux manières différentes: cachette de méthode et réécriture de la méthode. La différence entre la compréhension de ces deux concepts est essentielle pour la maintenance et l'héritage efficaces du code.
La méthode cache
Lorsqu'une classe déclare une nouvelle méthode du même nom que la méthode chinoise de la Fondation, mais il n'y a pas de déclaration explicite comme méthode de réécriture, la méthode sera cachée. La méthode de la nouvelle déclaration masque effectivement la mise en œuvre de la classe de base et fournit sa propre implémentation indépendante.
Exemple:Lorsque CLB appelle Clb.foo () Dans l'instance de la classe B, il exécute l'implémentation de la classe B et des sorties "1". Cependant, lorsque nous convertissons CLB en classe A, l'appelant accède à l'implémentation de la classe de base de foo () et de sorties "5".
Réécriture
<code class="language-csharp">class A { public int Foo(){ return 5;} } class B : A{ public new int Foo() { return 1;} //隐藏 }</code>
Différent de Hidden, la méthode réécrit la mise en œuvre de la nouvelle méthode d'implémentation dans la classe dérivée. Ceci est réalisé en utilisant le mot-clé Override.
Exemple:
Lorsque l'instance de la classe B appelle Clb.Bar (), il exécute l'implémentation de réécriture dans la classe B et les sorties "1". La conversion du CLB pour la catégorie A obligatoire n'affectera pas le comportement, car l'appel et la réalité de la réalité sont toujours appelés.Différences principales
<code class="language-csharp">class A { public virtual int Bar(){return 5;} } class B : A{ public override int Bar() {return 1;} //重写 }</code>
Hidden La méthode de la fondation:
Hidden dans la classe dérivée a créé une nouvelle méthode, qui masque l'implémentation de la classe de base. La réécriture a remplacé la réalisation de la classe de base.La réécriture nécessite des mots clés: La réécriture doit utiliser des mots clés de remplacement pour indiquer explicitement le remplacement attendu.
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!