Qu’est-ce que le polymorphisme ?

Dans la programmation orientée objet (POO), le polymorphisme fait référence à la capacité d’un objet à prendre plus d’une forme. Le terme « polymorphisme » vient des mots grecs « poly » (qui signifie « beaucoup ») et « morph » (qui signifie « formes ») et montre comment les objets polymorphes peuvent exécuter différentes opérations, en fonction du contexte.

La POO fait référence à une approche de la programmation qui se concentre sur l’utilisation d’objets. Les objets sont essentiellement définis par la manière dont ils se comportent, également appelée méthode, et par leurs attributs. Avec la POO, les programmeurs définissent et différencient davantage les objets en créant des classes d’objets. Java permet également la création d’une sous-classe, c’est-à-dire une classe nouvellement créée qui hérite des attributs d’une classe déjà établie. La classe d’origine à partir de laquelle ces attributs ont été copiés est appelée superclasse.

Quels sont les types de polymorphisme en Java ?

Le polymorphisme en Java est l’un des concepts fondamentaux de la POO. Elle permet aux programmeurs d’écrire un code cohérent qui peut se comporter différemment en fonction de la superclasse ou de la sous-classe avec laquelle la méthode ou l’objet interagit.

Il existe deux types de polymorphisme en Java :

  1. Polymorphisme au moment de la compilation

Également connu sous le nom de polymorphisme statique, ce type de polymorphisme est résolu lors de la compilation du code, lorsque le code devient une instruction machine. Elle est généralement obtenue par surcharge lorsque plusieurs méthodes d’une même classe portent le même nom mais ont des paramètres différents. Cela permet à une classe d’effectuer une opération similaire de manière différente, en fonction de l’entrée. Le polymorphisme à la compilation permet d’accélérer les temps d’exécution et la réutilisation, car la méthode à exécuter est déterminée à la compilation. Cependant, il manque de flexibilité car toutes les instructions de méthode possibles doivent être connues au moment de la compilation, ce qui le rend moins adaptable aux changements.

  1. Polymorphisme d’exécution

Le polymorphisme d’exécution, également appelé liaison dynamique ou liaison tardive, est un type de polymorphisme qui est résolu pendant l’exécution du programme. Ce type de polymorphisme est généralement obtenu par la surcharge de méthodes, dans laquelle une sous-classe fournit une implémentation spécifique d’une méthode déjà définie dans sa superclasse. La méthode à exécuter est déterminée au moment de l’exécution, ce qui permet une plus grande adaptabilité et flexibilité du code. Toutefois, cela conduit à des temps d’exécution plus lents que le polymorphisme à la compilation, car la machine détermine la méthode au moment de l’exécution.

Quels sont les avantages du polymorphisme ?

  • Réutilisation

Le polymorphisme permet de concevoir un code plus flexible et réutilisable. Il permet aux programmeurs de créer un code qui fonctionnera avec des objets indépendamment de la classe spécifique de chaque objet.

  • Flexibilité

Au lieu de devoir modifier les codes, le polymorphisme permet aux programmeurs d’étendre facilement les fonctionnalités.

  • Code simplifié

Le polymorphisme permet aux programmeurs de créer un code plus concis. Les codes polymorphes sont simples car ils conservent l’instruction initiale exacte mais ont la capacité de se modifier.

Quels sont les inconvénients du polymorphisme ?

  • Problèmes de performance

Une machine peut avoir du mal à exécuter un code polymorphe, surtout lorsqu’il devient trop complexe.

  • Difficile à mettre en œuvre

Les codes polymorphes sont plus difficiles à mettre en œuvre en raison du nombre de variables.

Conclusion

Le polymorphisme, qui est l’un des éléments fondamentaux de la POO, offre aux programmeurs un moyen de créer un code flexible qui peut être facilement étendu ou adapté. Le polymorphisme simplifie l’interaction entre les méthodes et les classes afin de garantir un code plus cohérent, plus souple et plus réutilisable. Comprendre et mettre en œuvre correctement le polymorphisme peut permettre d’améliorer l’efficacité du codage et de la programmation.

Next Steps

Building an efficient and effective IT team requires a centralized solution that acts as your core service delivery tool. NinjaOne enables IT teams to monitor, manage, secure, and support all their devices, wherever they are, without the need for complex on-premises infrastructure.

Learn more about NinjaOne Endpoint Management, check out a live tour, or start your free trial of the NinjaOne platform.

Vous pourriez aussi aimer

Qu’est-ce que la consommation de la bande passante ?

Che cos’è il Secure Socket Tunneling Protocol (SSTP)?

Qu’est-ce que la gestion multicloud ?

Qu’est-ce qu’une base de connaissances (Knowledge Base (KB)) ?

Qu’est-ce que l’informatique dématérialisée (cloud computing) ?

Qu’est-ce que la surveillance de l’intégrité des fichiers (File Integrity Monitoring (FIM)) ?

Qu’est-ce qu’un schéma de base de données ?

Qu’est-ce qu’une requête de base de données ?

Qu’est-ce qu’une base de données de gestion des configurations (Configuration Management Database (CMDB)) ? Vue d’ensemble de la CMDB

Qu’est-ce qu’un serveur DNS ?

Qu’est-ce que la consommation de la bande passante ?

Qu’est-ce que Desktop as a Service (DaaS) ?

Prêt à simplifier les aspects les plus complexes de l'informatique et de la sécurité ?
×

Voir NinjaOne en action !

En soumettant ce formulaire, j'accepte la politique de confidentialité de NinjaOne.