Polymorphisme

Définition - Que signifie le polymorphisme?

Le polymorphisme, en C #, est la capacité d'objets de différents types à fournir une interface unique pour différentes implémentations de méthodes. Il est généralement utilisé dans le contexte d'une liaison tardive, où le comportement d'un objet pour répondre à un appel à ses membres de méthode est déterminé en fonction du type d'objet au moment de l'exécution. Le polymorphisme permet de redéfinir les méthodes dans les classes dérivées.

Le polymorphisme constitue l'un des concepts fondamentaux de la programmation orientée objet, avec l'encapsulation et l'héritage.

Definir Tech explique le polymorphisme

La surcharge de méthode, la surcharge de constructeur et la surcharge d'opérateur sont considérées comme un polymorphisme à la compilation (également appelé statique ou ad hoc), ou une liaison précoce. Le remplacement de méthode, qui implique l'héritage et les fonctions virtuelles, est appelé polymorphisme d'exécution (également appelé dynamique, inclusion ou sous-typage) ou liaison tardive. Dans le cas du polymorphisme à la compilation, l'identification de la méthode surchargée à exécuter est effectuée lors de la compilation. Cependant, dans le polymorphisme d'exécution, le type de l'objet à partir duquel la méthode surchargée sera appelée est identifié au moment de l'exécution.

En C #, le polymorphisme est implémenté via l'héritage et l'utilisation du mot-clé "virtual". Les classes dérivées héritent des membres de la classe de base, à l'exception des constructeurs, en fonction de leurs niveaux d'accessibilité. Par conséquent, le compilateur génère le code pour vérifier et identifier le type d'objet correct (qui est pointé par le type de référence) au moment de l'exécution et la méthode appropriée à appeler.

Un exemple de polymorphisme est une classe de base d'employés, qui comprend tous les détails de base sur les employés. Des classes telles que commis et manager peuvent hériter de la classe de base des employés avec des implémentations spécifiques (en remplaçant les méthodes virtuelles) lorsque cela est nécessaire dans les classes dérivées.

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