{"id":353133,"date":"2024-08-30T15:51:28","date_gmt":"2024-08-30T15:51:28","guid":{"rendered":"https:\/\/www.ninjaone.com\/it-hub\/%content_hub_category%\/qu-est-ce-que-le-polymorphisme\/"},"modified":"2024-11-14T15:37:55","modified_gmt":"2024-11-14T15:37:55","slug":"qu-est-ce-que-le-polymorphisme","status":"publish","type":"content_hub","link":"https:\/\/www.ninjaone.com\/fr\/it-hub\/it-service-management\/qu-est-ce-que-le-polymorphisme\/","title":{"rendered":"Qu&rsquo;est-ce que le polymorphisme ?"},"content":{"rendered":"<p>Dans la programmation orient\u00e9e objet (POO), le polymorphisme fait r\u00e9f\u00e9rence \u00e0 la capacit\u00e9 d&rsquo;un objet \u00e0 prendre plus d&rsquo;une forme. Le terme \u00ab\u00a0polymorphisme\u00a0\u00bb vient des mots grecs \u00ab\u00a0poly\u00a0\u00bb (qui signifie \u00ab\u00a0beaucoup\u00a0\u00bb) et \u00ab\u00a0morph\u00a0\u00bb (qui signifie \u00ab\u00a0formes\u00a0\u00bb) et montre comment les objets polymorphes peuvent ex\u00e9cuter diff\u00e9rentes op\u00e9rations, en fonction du contexte.<\/p>\n<p>La POO fait r\u00e9f\u00e9rence \u00e0 une approche de la programmation qui se concentre sur l&rsquo;utilisation d&rsquo;objets. Les objets sont essentiellement d\u00e9finis par la mani\u00e8re dont ils se comportent, \u00e9galement appel\u00e9e m\u00e9thode, et par leurs attributs. Avec la POO, les programmeurs d\u00e9finissent et diff\u00e9rencient davantage les objets en cr\u00e9ant des classes d&rsquo;objets. Java permet \u00e9galement la cr\u00e9ation d&rsquo;une sous-classe, c&rsquo;est-\u00e0-dire une classe nouvellement cr\u00e9\u00e9e qui h\u00e9rite des attributs d&rsquo;une classe d\u00e9j\u00e0 \u00e9tablie. La classe d&rsquo;origine \u00e0 partir de laquelle ces attributs ont \u00e9t\u00e9 copi\u00e9s est appel\u00e9e superclasse.<\/p>\n<h2>Quels sont les types de polymorphisme en Java ?<\/h2>\n<p>Le polymorphisme en Java est l&rsquo;un des concepts fondamentaux de la POO. Elle permet aux programmeurs d&rsquo;\u00e9crire un code coh\u00e9rent qui peut se comporter diff\u00e9remment en fonction de la superclasse ou de la sous-classe avec laquelle la m\u00e9thode ou l&rsquo;objet interagit.<\/p>\n<p>Il existe deux types de polymorphisme en Java :<\/p>\n<ol>\n<li aria-level=\"1\">\n<h3>Polymorphisme au moment de la compilation<\/h3>\n<\/li>\n<\/ol>\n<p>\u00c9galement connu sous le nom de polymorphisme statique, ce type de polymorphisme est r\u00e9solu lors de la compilation du code, lorsque le code devient une instruction machine. Elle est g\u00e9n\u00e9ralement obtenue par surcharge lorsque plusieurs m\u00e9thodes d&rsquo;une m\u00eame classe portent le m\u00eame nom mais ont des param\u00e8tres diff\u00e9rents. Cela permet \u00e0 une classe d&rsquo;effectuer une op\u00e9ration similaire de mani\u00e8re diff\u00e9rente, en fonction de l&rsquo;entr\u00e9e. Le polymorphisme \u00e0 la compilation permet d&rsquo;acc\u00e9l\u00e9rer les temps d&rsquo;ex\u00e9cution et la r\u00e9utilisation, car la m\u00e9thode \u00e0 ex\u00e9cuter est d\u00e9termin\u00e9e \u00e0 la compilation. Cependant, il manque de flexibilit\u00e9 car toutes les instructions de m\u00e9thode possibles doivent \u00eatre connues au moment de la compilation, ce qui le rend moins adaptable aux changements.<\/p>\n<ol>\n<li aria-level=\"1\">\n<h3>Polymorphisme d&rsquo;ex\u00e9cution<\/h3>\n<\/li>\n<\/ol>\n<p>Le polymorphisme d&rsquo;ex\u00e9cution, \u00e9galement appel\u00e9 liaison dynamique ou liaison tardive, est un type de polymorphisme qui est r\u00e9solu pendant l&rsquo;ex\u00e9cution du programme. Ce type de polymorphisme est g\u00e9n\u00e9ralement obtenu par la surcharge de m\u00e9thodes, dans laquelle une sous-classe fournit une impl\u00e9mentation sp\u00e9cifique d&rsquo;une m\u00e9thode d\u00e9j\u00e0 d\u00e9finie dans sa superclasse. La m\u00e9thode \u00e0 ex\u00e9cuter est d\u00e9termin\u00e9e au moment de l&rsquo;ex\u00e9cution, ce qui permet une plus grande adaptabilit\u00e9 et flexibilit\u00e9 du code. Toutefois, cela conduit \u00e0 des temps d&rsquo;ex\u00e9cution plus lents que le polymorphisme \u00e0 la compilation, car la machine d\u00e9termine la m\u00e9thode au moment de l&rsquo;ex\u00e9cution.<\/p>\n<h2>Quels sont les avantages du polymorphisme ?<\/h2>\n<ul>\n<li aria-level=\"1\">\n<h3>R\u00e9utilisation<\/h3>\n<\/li>\n<\/ul>\n<p>Le polymorphisme permet de concevoir un code plus flexible et r\u00e9utilisable. Il permet aux programmeurs de cr\u00e9er un code qui fonctionnera avec des objets ind\u00e9pendamment de la classe sp\u00e9cifique de chaque objet.<\/p>\n<ul>\n<li aria-level=\"1\">\n<h3>Flexibilit\u00e9<\/h3>\n<\/li>\n<\/ul>\n<p>Au lieu de devoir modifier les codes, le polymorphisme permet aux programmeurs d&rsquo;\u00e9tendre facilement les fonctionnalit\u00e9s.<\/p>\n<ul>\n<li aria-level=\"1\">\n<h3>Code simplifi\u00e9<\/h3>\n<\/li>\n<\/ul>\n<p>Le polymorphisme permet aux programmeurs de cr\u00e9er un code plus concis. Les codes polymorphes sont simples car ils conservent l&rsquo;instruction initiale exacte mais ont la capacit\u00e9 de se modifier.<\/p>\n<h2>Quels sont les inconv\u00e9nients du polymorphisme ?<\/h2>\n<ul>\n<li aria-level=\"1\">\n<h3>Probl\u00e8mes de performance<\/h3>\n<\/li>\n<\/ul>\n<p>Une machine peut avoir du mal \u00e0 ex\u00e9cuter un code polymorphe, surtout lorsqu&rsquo;il devient trop complexe.<\/p>\n<ul>\n<li aria-level=\"1\">\n<h3>Difficile \u00e0 mettre en \u0153uvre<\/h3>\n<\/li>\n<\/ul>\n<p>Les codes polymorphes sont plus difficiles \u00e0 mettre en \u0153uvre en raison du nombre de variables.<\/p>\n<h2>Conclusion<\/h2>\n<p>Le polymorphisme, qui est l&rsquo;un des \u00e9l\u00e9ments fondamentaux de la POO, offre aux programmeurs un moyen de cr\u00e9er un code flexible qui peut \u00eatre facilement \u00e9tendu ou adapt\u00e9. Le polymorphisme simplifie l&rsquo;interaction entre les m\u00e9thodes et les classes afin de garantir un code plus coh\u00e9rent, plus souple et plus r\u00e9utilisable. Comprendre et mettre en \u0153uvre correctement le polymorphisme peut permettre d&rsquo;am\u00e9liorer <a href=\"https:\/\/www.ninjaone.com\/fr\/efficacite\">l&rsquo;efficacit\u00e9<\/a> du <a href=\"https:\/\/www.ninjaone.com\/blog\/high-code-vs-low-code-vs-no-code\/\">codage<\/a> et de la programmation.<\/p>\n","protected":false},"author":151,"featured_media":0,"parent":0,"template":"","meta":{"_acf_changed":false,"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"","_relevanssi_noindex_reason":"","_lmt_disableupdate":"no","_lmt_disable":""},"hub_categories":[4188],"class_list":["post-353133","content_hub","type-content_hub","status-publish","hentry","content_hub_category-it-service-management"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/content_hub\/353133","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/content_hub"}],"about":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/types\/content_hub"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/users\/151"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/media?parent=353133"}],"wp:term":[{"taxonomy":"content_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/hub_categories?post=353133"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}