Maison >développement back-end >C++ >Virtuel/Override vs New en C# : quand dois-je utiliser quel mot-clé pour le remplacement de méthode ?
Lors de la définition des méthodes dans la classe de base, les programmeurs sont souvent confrontés au problème de l'utilisation de mots clés "virtuels" ou "nouveaux". Cette décision affectera considérablement la réécriture de la loi chinoise dérivée.
Override virtuel
Le mot-clé "virtuel" dans la méthode de base indique qu'il peut être réécrit dans la classe dérivée. Pour réécrire cette méthode, la classe dérivée doit utiliser le mot clé "Override". Cela garantit que la méthode de réécriture fonctionne comme prévu pour maintenir la structure hiérarchique et le polymorphisme. Lorsque la méthode d'appel et de réécriture par la classe dérivée appelle, il exécutera la version de réécriture, même si la variable de référence de l'objet de maintien est la classe de base. Ceci est appelé post-liaison et permet un comportement dynamique.
Au contraire, le "nouveau" mot clé de la méthode dérivée déclare une nouvelle méthode qui masque la méthode d'héritage avec le même nom. Lors de l'utilisation, la nouvelle méthode remplace la méthode d'héritage dans la classe dérivée, détruisant ainsi le polymorphisme.
Lorsque la classe dérivée appelle la méthode de la "nouvelle" instruction, elle exécutera la nouvelle méthode, quelle que soit le type de variables de référence de l'objet de maintien. Ceci est considéré comme une liaison précoce et entrave le polymorphisme.
Exemple
Considérez l'exemple de code suivant:
Si vous allouez les exemples de la variable de base et appelez le Dosomething (), si vous utilisez Virtual / Override, le résultat sera faux, mais si vous l'utilisez, le résultat est vrai. Cela met en évidence la différence entre la liaison ultérieure et la liaison précoce.
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!