17.7. Classes et objets : polymorphisme
Page 51 | Écouter en audio
Le polymorphisme est l'un des quatre piliers fondamentaux de la programmation orientée objet (POO). Le terme vient du grec, où « poly » signifie plusieurs et « morphos » signifie formes. Le polymorphisme est donc la capacité d’un objet à prendre plusieurs formes. En programmation, cela se traduit par la capacité d'une variable, d'une fonction ou d'un objet à représenter plusieurs types de données.
Pour comprendre le polymorphisme, il est utile de commencer par comprendre les classes et les objets. Une classe est un modèle ou un plan qui décrit les variables et les méthodes communes à tous les objets d'un certain type. Un objet est une instance d'une classe. Lorsqu'une classe est définie, aucun espace mémoire n'est alloué. Ce n'est que lorsqu'un objet de la classe est créé que la mémoire est allouée.
Par exemple, considérons une classe appelée « Animal ». Cette classe peut avoir des variables comme « nom » et « âge » et des méthodes comme « manger » et « dormir ». Maintenant, nous pouvons créer des objets de cette classe, comme « chien » et « chat », qui sont tous deux des animaux, mais se comportent différemment. Le chien peut aboyer tandis que le chat peut miauler. C'est là que le polymorphisme entre en jeu.
En polymorphisme, une classe peut avoir plusieurs méthodes portant le même nom mais des implémentations différentes. Par exemple, la classe « Animal » peut avoir une méthode « son » qui produit des sons différents selon le type d'animal. Pour l'objet "dog", la méthode "sound" peut renvoyer "aboiement", tandis que pour l'objet "cat", elle peut renvoyer "meow".
Il existe deux types fondamentaux de polymorphisme : statique (ou surcharge) et dynamique (ou substitution).
Le polymorphisme statique se produit au moment de la compilation. Ici, la méthode à appeler est déterminée par le compilateur. La surcharge de méthodes et la surcharge d'opérateurs sont des exemples de polymorphisme statique.
D'un autre côté, le polymorphisme dynamique se produit au moment de l'exécution. Ici, la méthode à appeler est déterminée au moment de l'exécution. Le remplacement de méthode est un exemple de polymorphisme dynamique.
Par exemple, supposons que nous ayons une superclasse appelée « Animal » et deux sous-classes appelées « Chien » et « Chat ». La superclasse possède une méthode appelée « sound » qui est remplacée par les sous-classes. Si nous créons un objet de la superclasse et un objet de chacune des sous-classes, puis appelons la méthode "sound" pour chacun d'eux, le résultat sera différent pour chaque objet, même si la méthode appelée est la même. C'est du polymorphisme.
Le polymorphisme est un outil puissant qui permet aux programmeurs d'écrire du code plus propre et plus compréhensible. Il constitue l'un des concepts fondamentaux de la programmation orientée objet. Il permet aux programmeurs de manipuler des objets de différentes classes via une interface commune, ce qui peut faciliter la maintenance et l'expansion du code.
En résumé, le polymorphisme est un concept fondamental de la programmation orientée objet qui permet à une seule interface de représenter une généralité de classes. Il fournit un moyen d'intégrer la complexité en permettant d'utiliser le même code pour représenter différents types de comportement.
Répondez maintenant à l’exercice sur le contenu :
Qu'est-ce que le polymorphisme dans la programmation orientée objet (POO) ?
Tu as raison! Félicitations, passez maintenant à la page suivante
Vous avez raté! Essayer à nouveau.
Page suivante de lebook gratuit :