Maison > développement back-end > C++ > Que signifie le mot clé « nouveau » dans une signature de méthode ?

Que signifie le mot clé « nouveau » dans une signature de méthode ?

Susan Sarandon
Libérer: 2025-01-05 07:55:41
original
764 Les gens l'ont consulté

What Does the `new` Keyword Mean in a Method Signature?

Nouveau mot-clé dans la signature de méthode

Question : Que signifie le nouveau mot-clé dans une signature de méthode ?

Réponse : Dans une signature de méthode, le mot-clé new indique que la méthode est une nouvelle méthode dans la classe dérivée qui cache l’implémentation de la classe de base d’une méthode. Il est différent du mot-clé override, qui ne peut être utilisé que pour remplacer les méthodes virtuelles déclarées dans la classe de base.

Exemple :

Considérons la classe de base suivante :

public class Base
{
    public void BaseMethod() {}
}
Copier après la connexion

Maintenant, créons une classe dérivée qui remplace la méthode BaseMethod en utilisant la méthode override mot-clé :

public class Derived : Base
{
    public override void BaseMethod() {}
}
Copier après la connexion

Dans cet exemple, le mot-clé override indique au compilateur que la méthode BaseMethod dans la classe dérivée remplace l'implémentation de la classe de base.

Cependant, créons maintenant un autre dérivé class et utilisez le nouveau mot-clé dans la signature de la méthode :

public class AnotherDerived : Base
{
    public new void BaseMethod() {}
}
Copier après la connexion

Dans l'exemple ci-dessus, le nouveau mot-clé est utilisé car la méthode BaseMethod dans la la classe dérivée ne remplace pas l’implémentation de la classe de base. Au lieu de cela, il crée une nouvelle méthode portant le même nom que la méthode de la classe de base.

Différences clés entre new et override :

  • Overridable méthodes : Le mot-clé override ne peut être utilisé que pour remplacer les méthodes virtuelles dans la classe de base. Le nouveau mot-clé peut masquer les méthodes virtuelles et non virtuelles.
  • Visibilité : Les méthodes remplacées doivent avoir une visibilité identique ou supérieure à celle de la méthode de la classe de base. Les nouvelles méthodes peuvent avoir n'importe quelle visibilité.
  • Invocation : Si une méthode portant le même nom est appelée à partir de la référence de la classe de base, l'implémentation de la classe de base sera invoquée pour les méthodes remplacées. Cependant, pour les nouvelles méthodes, l'implémentation de la classe dérivée sera invoquée.

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