Comment utiliser la méthode virtuelle en C #

Comment utiliser la méthode virtuelle en C #
Les méthodes virtuelles sont une caractéristique importante des langages de programmation orientés objet comme C #. Ils permettent aux classes de définir des méthodes qui peuvent être remplacées par des classes dérivées, offrant aux classes un moyen de personnaliser le comportement de leurs classes de parents.

Quelle est la méthode virtuelle en C #

Les méthodes virtuelles en C # sont des méthodes qui sont déclarées dans une classe de base et peuvent être remplacées par des classes dérivées. En d'autres termes, une méthode virtuelle est une méthode qui peut être redéfinie dans une sous-classe, voici la syntaxe:

vide virtuel public ()

// implémentation de la méthode

Le mot-clé virtuel indique que cette méthode peut être remplacée par une classe dérivée et lorsqu'une classe dérivée remplace une méthode virtuelle, il fournit sa propre implémentation de la méthode.

Pour remplacer une méthode virtuelle dans une classe dérivée, vous incluez le mot-clé de remplacement dans la signature de la méthode et ci-dessous est la syntaxe pour elle:

VOIDE PUBLIQUE PUBLIQUE ()

// implémentation de la méthode

Le mot-clé Override indique que cette méthode remplace une méthode virtuelle dans la classe parent. Voici un exemple d'extrait de code qui démontre l'utilisation de méthodes virtuelles en C #:

Utilisation du système;
// définir une classe de base nommée calcul
calcul de la classe

// définir une méthode d'ajout virtuelle qui prend deux entiers et renvoie un résultat entier
public virtual int Add (int x, int y)

retour x + y; // Renvoie la somme des deux entiers d'entrée


// définir une classe dérivée nommée CustomCalcul qui hérite du calcul
Classe CustomCalcul: calcul

// remplace la méthode d'ajout de la classe de base
Public Override int Add (int x, int y)

if (x> 10 || y> 10) // si l'un des entiers d'entrée est supérieur à 10

retour x - y; // soustrait y de x et renvoyez le résultat

else // si aucun des entiers d'entrée n'est supérieur à 10

base de retour.Ajouter (x, y); // appelle la méthode ADD de la classe de base pour renvoyer la somme des deux entiers d'entrée



programme de classe

statique void main (String [] args)

// Créer une instance de la classe de base nommée calcul
Calcul calcul = nouveau calcul ();
// Créer une instance de la classe dérivée nommée CustomCalculation
CustomCalculationCustomCalc = new CustomCalculation ();
// appelle la méthode Virtual Add sur l'objet de calcul de base
Int result1 = calc.Ajouter (5, 7);
Console.WriteLine ($ "result1: result1"); // Sortie: Résultat 1: 12
// Appelez la méthode Add Overridden sur l'objet CustomCalcul
Int Result2 = CustomCalc.Ajouter (12, 7);
Console.WriteLine ($ "result2: result2"); // Sortie: Résultat 2: 5

Dans cet exemple, nous avons une classe de base appelée calcul avec une méthode virtuelle appelée Add qui ajoute simplement deux entiers ensemble. Nous avons également une classe dérivée appelée CustomCalcul qui remplace la méthode ADD, mais uniquement lorsque la somme des deux nombres est supérieure à 10.

Dans la méthode Add remplacée, nous vérifions si X ou Y est supérieur à 10. Si cette condition est vraie, nous renvoyons la différence entre X et Y et si la condition est fausse, nous appelons l'implémentation de base de la méthode ADD en utilisant le mot-clé de base.

Dans la méthode principale, nous créons un objet de calcul et un objet CustomCalcul. Nous appelons d'abord la méthode Virtual Add sur l'objet de calcul de base, passant dans 5 et 7 comme arguments. Cela devrait entraîner une somme de 12 et nous appelons ensuite la méthode Add remplacée sur l'objet CustomCalcul, passant dans 12 et 7 comme arguments. Cela devrait entraîner une différence de 5, car la somme des deux nombres est supérieure à 10.

Comme vous pouvez le voir, la méthode Add remplacée dans la classe CustomCalcul est appelée uniquement lorsque la condition est fausse. Lorsque la condition est vraie, la méthode remplacée fournit une implémentation différente de la méthode ADD qui soustrait le deuxième numéro du premier, ci-dessous est la sortie du code:

Conclusion

La méthode virtuelle en C # fournit un moyen pour les classes de définir des méthodes qui peuvent être personnalisées par des classes dérivées. En marquant une méthode comme virtuelle, vous autorisez les classes dérivées à fournir leur propre implémentation de la méthode et la sienne est une caractéristique puissante de la programmation orientée objet qui permet une plus grande flexibilité et réutilisabilité dans le code.