Différence entre le remplacement et la surcharge en C

Table des matières:

Différence entre le remplacement et la surcharge en C
Différence entre le remplacement et la surcharge en C

Vidéo: Différence entre le remplacement et la surcharge en C

Vidéo: Différence entre le remplacement et la surcharge en C
Vidéo: Polymorphisme de Surcharge en POO:Différence entre Surcharge (Overloading)&Redéfinition( Overriding) 2024, Juillet
Anonim

Différence clé - Remplacement vs surcharge en C

La principale différence entre le remplacement et la surcharge en C est que la liaison de l'appel de méthode surchargé à sa définition se produit au moment 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 Cest qu'il prend en charge la programmation orientée objet (POO). L'un des piliers de la POO est le polymorphisme. Cela donne à un objet d'avoir plusieurs comportements. Il existe deux types de polymorphisme connus sous le nom de remplacement et de surcharge. Cet article traite de la différence entre le remplacement de méthode et la surcharge en C.

Qu'est-ce que la substitution en C ?

Il y a un autre concept important dans la POO, c'est l'héritage. Il s'agit d'utiliser les attributs et les 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 appelée classe dérivée. Lors du 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 substitué à la définition se produit au moment de l'exécution. Un exemple est le suivant.

Différence entre le remplacement et la surcharge en C
Différence entre le remplacement et la surcharge en C

Figure 01: Programme C avec remplacement

Selon le programme ci-dessus, la classe Shape est la classe de base, et elle contient la méthode d'affichage. Les classes Rectangle et Triangle sont des classes dérivées. Ces classes dérivées ont également le même affichage de méthode avec leurs propres implémentations.

D'abord, la variable de référence obj est créée. Il pointe vers l'objet Shape. Ainsi, la méthode d'affichage de la classe Shape s'exécutera. Ensuite, la variable de référence pointe vers l'objet Rectangle. Ainsi, la méthode d'affichage de la classe Rectangle s'exécutera. Enfin, la variable de référence pointe vers l'objet Triangle. Ainsi, la méthode d'affichage de la classe Triangle s'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 au moment de l'exécution. La classe Shape est écrite avec le mot-clé "virtuel". Les classes Rectangle et Triangle sont écrites avec le mot clé 'override'. Si ces mots clés ne sont pas utilisés, la sortie imprimera le contenu de la méthode d'affichage de la classe Shape 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. Reportez-vous au programme C ci-dessous.

Différence clé entre le remplacement et la surcharge en C
Différence clé entre le remplacement et la surcharge en C

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 sum avec des entiers. La somme (5.1, 7.94) invoquera la méthode sum avec des valeurs doubles. Les deux méthodes ont le même nom et le 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. Une surcharge peut également se produire si les noms de méthode et les types de paramètres sont identiques mais que le nombre de paramètres est différent.

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

Le remplacement et la surcharge en C sont des types de polymorphisme

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

Remplacer ou surcharger en C

La substitution 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 consiste à créer plusieurs méthodes portant le même nom avec différentes implémentations.
Paramètres
En surcharge C, les méthodes ont le même nom, les mêmes types de paramètres et le même nombre de paramètres. En surcharge C, les méthodes ont le même nom mais un nombre de paramètres différent 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 au sein de la même classe.
Temps de liaison
La liaison de l'appel de méthode surchargé à sa définition se produit au moment de l'exécution. La liaison de l'appel de méthode surchargé à sa définition se produit au moment de la compilation.
Synonymes
Le remplacement est appelé polymorphisme d'exécution, polymorphisme dynamique ou liaison tardive. La surcharge est appelée polymorphisme au moment de la compilation, polymorphisme statique ou liaison précoce.

Résumé - Remplacement 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 surchargé à sa définition se produit au moment 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.

Conseillé: