Différence Entre Le Remplacement Et La Surcharge

Différence Entre Le Remplacement Et La Surcharge
Différence Entre Le Remplacement Et La Surcharge

Vidéo: Différence Entre Le Remplacement Et La Surcharge

Vidéo: Différence Entre Le Remplacement Et La Surcharge
Vidéo: Polymorphisme de Surcharge en POO:Différence entre Surcharge (Overloading)&Redéfinition( Overriding) 2024, Avril
Anonim

Overriding vs Overloading

La méthode Overriding et la méthode Overloading sont deux concepts / techniques / fonctionnalités que l'on retrouve dans certains langages de programmation. Les deux concepts permettent au programmeur de fournir différentes implémentations pour les méthodes du même nom. Le remplacement de méthode permet au programmeur de fournir une implémentation alternative dans une sous-classe à une méthode déjà définie dans sa super classe. La surcharge de méthode permet au programmeur de fournir différentes implémentations à plusieurs méthodes avec le même nom (dans la même classe).

Qu'est-ce que le remplacement?

Comme mentionné ci-dessus, une classe peut étendre une super classe ou une classe parente, dans des langages de programmation orientés objet. Une classe enfant peut avoir ses propres méthodes ou peut éventuellement avoir ses propres implémentations pour des méthodes déjà définies dans sa classe parente (ou l'une de ses grandes classes parentes). Ainsi, lorsque ce dernier se produit, on parle de remplacement de méthode. En d'autres termes, si la classe enfant fournit une implémentation à une méthode avec la même signature et le même type de retour qu'une méthode déjà définie dans l'une de ses classes parentes, cette méthode est dite surchargée (remplacée) par l'implémentation de la classe enfant. Donc, s'il y a une méthode remplacée dans une classe, le système d'exécution devra décider quelle implémentation de méthode est utilisée. Ce problème est résolu en examinant le type exact d'objet utilisé pour l'invoquer. Si un objet de la classe parente est utilisé pour appeler la méthode substituée, l'implémentation dans la classe parente est utilisée. De même, si c'est un objet de la classe enfant qui est utilisé, l'implémentation de la classe enfant est utilisée. Les langages de programmation modernes comme Java, Eifell, C ++ et Python permettent le remplacement de méthode.

Qu'est-ce que la surcharge?

La surcharge de méthode est une fonctionnalité fournie par certains langages de programmation pour créer plusieurs méthodes avec le même nom, mais avec des types d'entrée et de sortie différents. Dans les langages de programmation modernes tels que Java, C #, C ++ et VB. NET, cette fonctionnalité est disponible. Vous pouvez surcharger une méthode en créant une autre méthode avec le même nom mais avec une signature de méthode différente ou un type de retour différent (ou les deux). Par exemple, si vous avez method1 (type1 t1) et method1 (type2 t2) dans la même classe, ils sont surchargés. Ensuite, le système devra décider lequel exécuter lors de son appel. Cette différenciation est faite en regardant le type de paramètre (s) passé à la méthode. Si l'argument est de type1, alors la première implémentation est appelée, tandis que s'il est de type2, alors la deuxième implémentation est appelée.

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

Bien que le remplacement de méthode et la surcharge de méthode soient utilisés pour fournir une méthode avec différentes implémentations, il existe des différences clés entre ces deux concepts / techniques. Tout d'abord, les sujets de surcharge de méthode restent toujours dans des classes différentes, tandis que les sujets de surcharge de méthode restent dans la même classe. Cela signifie que le remplacement n'est possible que dans les langages de programmation orientés objet qui permettent l'héritage, tandis que la surcharge peut également être disponible dans un langage non orienté objet. En d'autres termes, vous remplacez une méthode dans la super classe mais vous surchargez une méthode dans votre propre classe.

Une autre différence est que les méthodes surchargées ont le même nom de méthode, la même signature de méthode et le même type de retour, mais les méthodes surchargées doivent différer dans la signature ou le type de retour (le nom doit être le même). Afin de différencier deux méthodes surchargées, le type exact d'objet utilisé pour appeler les méthodes id utilisé, tandis que pour différencier deux méthodes surchargées, les types de paramètres sont utilisés. Une autre différence clé est que la surcharge est résolue au moment de la compilation, tandis que le remplacement est résolu au moment de l'exécution.

Recommandé: