Maison > développement back-end > C++ > Override vs nouveau dans C #: Quand devez-vous utiliser chaque mot-clé pour modifier les méthodes héréditaires?

Override vs nouveau dans C #: Quand devez-vous utiliser chaque mot-clé pour modifier les méthodes héréditaires?

Barbara Streisand
Libérer: 2025-01-28 12:11:11
original
988 Les gens l'ont consulté

Override vs. New in C#: When Should You Use Each Keyword to Modify Inherited Methods?

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>
Copier après la connexion

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>
Copier après la connexion

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