Commande

Définition - Que signifie Override?

Override, en C #, est un mot clé utilisé pour remplacer un membre virtuel défini dans une classe de base par la définition de ce membre dans la classe dérivée.

Le modificateur de remplacement permet aux programmeurs de spécifier la spécialisation d'un membre virtuel existant hérité d'une classe de base pour fournir une nouvelle implémentation de ce membre dans la classe dérivée. Il peut être utilisé avec une méthode, une propriété, un indexeur ou un événement qui doit être modifié ou étendu dans une classe dérivée.

Le modificateur de substitution est destiné à implémenter le concept de polymorphisme en C #.

Le remplacement diffère des nouveaux modificateurs en ce que le premier est utilisé uniquement pour remplacer un membre virtuel d'une classe de base, tandis que le second aide également à remplacer un membre non virtuel défini dans une classe de base en masquant la définition contenue dans la classe de base.

Definir Tech explique Override

Le remplacement est principalement utilisé dans le contexte d'une méthode virtuelle, dans laquelle l'exécution d'un type de méthode est déterminée par le type d'exécution de l'instance sur laquelle la méthode est appelée. Lors de l'appel, l'appelant n'a pas besoin de savoir que l'objet appelé était une instance de classe dérivée.

Par exemple, si Shape est une classe de base qui fournit l'implémentation de base commune à tous les objets de sa classe, elle peut être définie avec une méthode virtuelle, CalculateArea. Square peut être une classe dérivée de Shape, qui peut remplacer la méthode CalculateArea pour implémenter la logique nécessaire au calcul de l'aire d'un carré.

Pour remplacer une méthode dans une classe dérivée:

  • La méthode de la classe de base doit être déclarée avec un modificateur virtuel.
  • La méthode de la classe de base peut être abstraite mais pas statique.
  • Le modificateur d'accès de la méthode dans les classes de base et dérivées doit être le même.
  • La méthode doit être définie avec la même signature dans les classes dérivées et de base.

Cette définition a été écrite dans le contexte de C #