Maison >développement back-end >C++ >Quelle est la différence entre «New» et «Override» en C # Héritage?
C # Héritage: compréhension new
et override
En héritage C #, les mots clés new
et override
offrent des moyens distincts de gérer le comportement de la méthode dans les classes dérivées. Cette explication clarifie leurs différences et leur utilisation appropriée.
new
Modificateur: définir une méthode distincte
Le modificateur new
permet à une classe dérivée d'introduire une méthode avec le même nom qu'une méthode dans sa classe de base. Surtout, cela ne remplace pas la méthode de la classe de base; Au lieu de cela, il crée une méthode complètement indépendante.
Exemple:
<code class="language-csharp">public class BaseClass { public void MyMethod() { Console.WriteLine("BaseClass Method"); } } public class DerivedClass : BaseClass { public new void MyMethod() { Console.WriteLine("DerivedClass Method"); } }</code>
Ici, DerivedClass.MyMethod()
est une méthode distincte. L'appel MyMethod()
sur une instance DerivedClass
exécute la version de la classe dérivée; L'appeler sur une instance BaseClass
exécute la version de la classe de base.
override
Modificateur: Remplacement d'une méthode virtuelle
Le modificateur override
est utilisé pour remplacer l'implémentation d'une méthode A Virtual de la classe de base. La méthode de classe de base doit être déclarée virtual
(ou abstract
). override
s'assure que la version de la classe dérivée est appelée lorsque la méthode est invoquée sur une instance de la classe dérivée.
Exemple:
<code class="language-csharp">public class BaseClass { public virtual void MyMethod() { Console.WriteLine("BaseClass Method"); } } public class DerivedClass : BaseClass { public override void MyMethod() { Console.WriteLine("DerivedClass Method"); } }</code>
Dans ce cas, DerivedClass.MyMethod()
remplace BaseClass.MyMethod()
. Appeler MyMethod()
sur une instance DerivedClass
toujours exécute la version DerivedClass
.
Différences clés résumées:
Feature | new |
override |
---|---|---|
Method Creation | Creates a completely new method | Replaces an existing virtual method |
Inheritance | Breaks the inheritance chain for the method | Maintains the inheritance chain |
Base Class Method | Base class method remains unaffected | Base class method must be virtual/abstract |
Quand utiliser chaque modificateur:
Utilisez new
lorsque vous voulez une méthode complètement distincte dans la classe dérivée, même s'il partage un nom avec une méthode dans la classe de base. Ceci est utile pour éviter le remplacement involontaire et le maintien de fonctionnalités distinctes.
utiliser override
lorsque vous avez l'intention d'étendre ou de modifier le comportement d'une méthode virtuelle définie dans la classe de base, fournissant une implémentation spécialisée au sein de la classe dérivée tout en conservant la relation d'héritage pour cette méthode spécifique.
En comprenant ces distinctions, vous pouvez utiliser efficacement l'héritage et le polymorphisme dans vos applications C #.
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!