Comprendre la remplacement et les nouveaux mots clés en C #: Quand les utiliser pour modifier la méthode de l'héritage?
Dans la programmation orientée objet, la méthode de base dans la classe d'héritage est très importante. "Remplacer" et "nouveaux" mots clés ont des utilisations différentes dans ce contexte:
<.> 1. MOT-CLÉ MODIFICATION
Le modificateur "Override" est utilisé pour réécrire explicitement la méthode virtuelle ou la méthode abstraite de la classe de base. Lorsque la méthode de réécriture, elle fournit une nouvelle implémentation, tout en conservant la signature de la méthode d'origine. Chaque fois que vous appelez cette méthode, même si vous faites référence à la classe de base, la méthode de réécriture sera effectuée. <.> 2. Nouveau mot clé
Le modificateur "nouveau" représente une méthode d'implémentation différente. La méthode "nouvelle" protégera la méthode de fondation, ce qui signifie que tout codage de la classe de base exécutera l'implémentation d'origine, et le code qui cite la classe d'héritage exécutera la "nouvelle" méthode.
Exemple:
Considérez le fragment de code suivant:
Dans cet exemple, la classe "dérivée" a réécrit la méthode "DOIT". Toute référence à "base.doin" exécutera la méthode "DOIT" dans la classe "dérivée".
Dans ce cas, "DOIT" dans la classe "dérivée" est considéré comme une nouvelle méthode. La référence à "Base.doin" effectuera l'implémentation d'origine de la classe "Base", et la référence à "Derive.doin" effectuera une nouvelle implémentation dans la classe "Derive".Utilisation recommandée:
<code class="language-C#">public class Base { public virtual void DoIt() { } } public class Derived : Base { public override void DoIt() { } }</code>
Lors des méthodes de réécriture, il est recommandé d'utiliser "remplacer" car il conserve la signature de la méthode et permet le polymorphisme. D'un autre côté, "Nouveau" est utilisé pour créer différentes méthodes à partir de la classe de base, qui peut détruire la relation d'héritage.
<code class="language-C#">public class Base { public virtual void DoIt() { } } public class Derived : Base { public new void DoIt() { } }</code>
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!