Maison >développement back-end >C++ >Quelle est la différence entre les mots clés «nouveaux» et «Override» dans l'héritage de la méthode?
Dans la programmation orientée objet, l'héritage est le concept de base, permettant aux dérivés d'élargir et de modifier le comportement des classes de base. Lors de la définition de ces classes, les développeurs peuvent avoir besoin de réécrire ou de créer une nouvelle implémentation. Afin de clarifier cette différence, examinons les scènes suivantes:
Scène 1: classe de base
Cette grammaire déclare une méthode virtuelle dans la classe de base. La méthode virtuelle peut être réécrite dans la catégorie dérivée pour fournir une implémentation spécifique.
<code class="language-c#">public virtual void DoIt();</code>Scène 1: Classe de division
Dans la méthode dérivée, l'utilisation de "Nouveau" créera une méthode nouvelle et indépendante, et son nom est le même que la méthode de la classe de base. Cependant, cela n'est pas considéré comme réécrit, et lorsque la classe de base est appelée, le comportement de la méthode de la classe de base n'affectera pas le comportement de la classe de base.
Scène 2: Classe de base<code class="language-c#">public new void DoIt();</code>
Il s'agit d'une méthode non utile et ne peut pas être réécrite dans la classe dérivée. Les dérivés doivent utiliser le "nouveau" modificateur pour réaliser une nouvelle méthode avec le même nom. Scène 2: Classe de division
<code class="language-c#">public void DoIt();</code>
Les modificateurs de "remplacement" indiquent que la méthode de la classe dérivée consiste à réécrire une autre méthode de la même signature dans la classe de base. Lorsque l'appel est appelé par une classe de base, la méthode de réécriture sera exécutée.
Différences réelles
<code class="language-c#">public override void DoIt();</code>
Dans cet exemple, "Derive.doiit ()" réécrit "base.doiit ()", et lorsque la méthode "B" variable "DOIT ()" est appelée de l'objet "B" Dériable "dérivé", il sera appelé pour l'appeler.
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!