Différence entre remplacement et surcharge dans C #

Différence entre remplacement et surcharge dans C #

Différence clé - remplacer VS Surcharge en C #
 

Le différence clé Entre le remplacement et la surcharge en C # est que La liaison de l'appel de méthode remplacée à sa définition se produit lors de l'exécution tandis que la liaison de l'appel de méthode surchargé à sa définition se produit au moment de la compilation.

C # est un langage de programmation à usage général développé par Microsoft. Le principal avantage de C # est qu'il prend en charge la programmation orientée objet (OOP). Un pilier de la POO est le polymorphisme. Il donne un objet pour avoir plusieurs comportements. Il existe deux types dans le polymorphisme connu sous le nom de remplacement et de surcharge. Cet article traite de la différence entre la méthode dominante et la surcharge en C #.

CONTENU

1. Aperçu et différence clé
2. Qu'est-ce qui remplace en C #
3. Qu'est-ce que la surcharge en C #
4. Similitudes entre le remplacement et la surcharge en C #
5. Comparaison côte à côte - Overriding vs surcharge en C # sous forme tabulaire
6. Résumé

Qu'est-ce qui remplace en C #?

Il y a un autre concept important dans la POO est l'héritage. Il s'agit d'utiliser des attributs et des méthodes de la classe déjà existante. Il améliore la réutilisabilité du code. La classe déjà existante est la classe de base, et la nouvelle classe est connue sous le nom de classe dérivée. Dans le remplacement du polymorphisme, il devrait y avoir une classe de base et une classe dérivée. La liaison de l'appel de méthode remplacée à la définition se produit lors de l'exécution. Un exemple est le suivant.

Figure 01: programme C # avec le remplacement

Selon le programme ci-dessus, la forme de la classe est la classe de base et il contient la méthode d'affichage. Le rectangle de classe et le triangle sont des classes dérivées. Ces classes dérivées ont également la même méthode affichage avec leurs propres implémentations.

Tout d'abord, la variable de référence Obj est créée. Il pointe vers l'objet de forme. Ainsi, la méthode d'affichage de la classe de forme exécutera. Ensuite, la variable de référence pointe vers l'objet rectangle. Ainsi, la méthode d'affichage de la classe rectangle exécutera. Enfin, la variable de référence pointe vers l'objet triangle. Ainsi, la méthode d'affichage de la classe Triangle exécutera. La méthode d'affichage de la classe de base est remplacée par les méthodes d'affichage des classes dérivées.

La méthode à exécuter est décidée lors de l'exécution. La classe de forme est écrite avec un mot-clé «virtuel». Les classes rectangulaires et triangulaires sont écrites avec un mot-clé «remplacer». Si ces mots clés ne sont pas utilisés, la sortie imprimera le contenu de la méthode d'affichage de la classe de forme pour tous.

Qu'est-ce que la surcharge en C #?

En surcharge, plusieurs méthodes ont le même nom mais avec des paramètres différents. Les paramètres peuvent être de différents types. Les méthodes peuvent également avoir un nombre différent de paramètres. La surcharge de méthode se produit dans la même classe. La liaison des méthodes surchargées à la définition se produit au moment de la compilation.  Référer le programme C # ci-dessous.

Figure 02: Programme C # avec surcharge

Selon le programme ci-dessus, la classe A a deux méthodes avec le même nom appelé SUM. Ils ont différents types de paramètres. Dans le programme principal, un objet de a est créé. La somme (2,3) invoquera la méthode de somme avec des entiers. La somme (5.1, 7.94) invoquera la méthode de somme avec des valeurs doubles. Les deux méthodes ont le même nom et un même nombre de paramètres. Mais les types de paramètres sont différents. La méthode requise est appelée en conséquence. La surcharge peut également se produire si les noms de méthode et les types de paramètres sont les mêmes mais que le nombre de paramètres est différent.

Quelle est la similitude entre le remplacement et la surcharge en C #?

  • Les deux substituts et la surcharge en C # sont des types de polymorphisme.

Quelle est la différence entre le remplacement et la surcharge en C #?

Remplacement vs surcharge en C #

La remplacement en C # consiste à fournir une implémentation spécifique dans une méthode de classe dérivée pour une méthode déjà existante dans la classe de base. La surcharge en C # est de créer plusieurs méthodes avec le même nom avec différentes implémentations.
 Paramètres
Dans C # Overriding, les méthodes ont le même nom, les mêmes types de paramètres et un même nombre de paramètres. En C # surcharge, les méthodes ont le même nom mais un nombre différent de paramètres ou un type de paramètres différent.
Occurrence
En C #, le remplacement se produit dans la classe de base et la classe dérivée. En C #, la surcharge se produit dans la même classe.
 Temps de reliure
La liaison de l'appel de la méthode remplacée à sa définition se produit lors de l'exécution. La liaison de l'appel de méthode surchargée à sa définition se produit au moment de la compilation.
Synonymes
Le remplacement est appelé comme polymorphisme d'exécution, polymorphisme dynamique ou reliure tardive. La surcharge est appelée compiler le polymorphisme temporel, polymorphisme statique ou reliure précoce.

Résumé - Remplacer VS Surcharge en C #

Le remplacement et la surcharge sont deux types de polymorphisme. La différence entre le remplacement et la surcharge en C # est que la liaison de l'appel de méthode remplacé à sa définition se produit lors de l'exécution tandis que la liaison de l'appel de méthode surchargé à sa définition se produit au moment de la compilation.

Référence:

1.Kumar, Mukesh. C # Corner. Disponible ici
2.tutorielpoint.com. «C # Polymorphisme.”TutorialSpointDisponible ici
3.tutorielpoint.com. «C # Types de données.”TutorialSpoint, disponible ici