> Tech > Avec le polymorphisme et la possibilité de savoir quelle version de code utiliser à  l’exécution, la technologie OO prend tout son sens

Avec le polymorphisme et la possibilité de savoir quelle version de code utiliser à  l’exécution, la technologie OO prend tout son sens

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Polymorphisme
Polymorphisme signifie "formes multiples", et cela correspond à  un besoin très courant en programmation : celui de fonctionner exactement comme un tout, à  quelques différences prés. Ainsi, la formule de calcul de la prime d'une police d'assurance automobile est probablement similaire à  celle utilisée pour calculer la prime d'une

Avec le polymorphisme et la possibilité de savoir quelle version de code utiliser à  l’exécution, la technologie OO prend tout son sens

police d’assurance de bateau, mais personne ne s’attend à  utiliser exactement la même formule pour les deux. De même, les polices d’assurance santé et les polices d’assurance automobile ont des primes mais on utilise des modes de calcul complètement différents. Le polymorphisme collabore avec l’héritage pour créer des changements dans une méthode sans redéfinir toutes les variables et les méthodes concernées. Il offre aussi de nombreuses possibilités quant aux modalités d’héritage du code. On peut utiliser le code de la classe parent directement, le remplacer complètement ou appeler le code parent puis ajouter un traitement unique à  la classe enfant.
Sans polymorphisme, l’héritage est limité : mais avec le polymorphisme et la possibilité de savoir quelle version de code utiliser à  l’exécution, la technologie OO prend tout son sens. Sachant que les langages OO peuvent créer leurs propres types de données, on voit toutes les possibilités dans notre exemple de calcul de prime d’assurance : une application qui calcule les primes pour toutes les polices peut préciser un type de données « Police » et une méthode « CalculPrime ».
Ce code se compilera parce que la classe Police contient une méthode CalculPrime abstraite. Une méthode abstraite n’a pas de code, mais oblige toutes les classes à  hériter de la classe dans laquelle la méthode abstraite est définie, pour mettre en oeuvre une méthode de même signature que la méthode abstraite.
Le polymorphisme permet à  différents types de Police d’utiliser automatiquement, à  l’exécution, la méthode CalculPrime spécifique codée pour chaque classe de Police (PoliceAuto, PoliceBateau, PoliceSantéPrincipale). Par conséquent, notre routine de niveau supérieur peut définir CalculPrime pour un objet Police et les objets d’exécution réels peuvent être de n’importe quel type hérité de Police.
Le polymorphisme est également lié à  l’encapsulation, complétant ainsi les trois concepts à  la base du modèle OO. Sans l’encapsulation, le polymorphisme serait difficile à  maîtriser, mais l’encapsulation permet à  un programmeur travaillant avec n’importe quelle classe d’indiquer quelles méthodes et variables doivent être utilisées exactement telles qu’on les a écrites et lesquelles peuvent subir des modifications par le biais du polymorphisme.

Téléchargez cette ressource

Les mégatendances cybersécurité et cyber protection 2024

Les mégatendances cybersécurité et cyber protection 2024

L'évolution du paysage des menaces et les conséquences sur votre infrastructure, vos outils de contrôles de sécurité IT existants. EPP, XDR, EDR, IA, découvrez la synthèse des conseils et recommandations à appliquer dans votre organisation.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010