IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages de programmation Discussion :

Qu'est-ce que la notion de polymorphisque dans la POO ?


Sujet :

Langages de programmation

  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut Qu'est-ce que la notion de polymorphisque dans la POO ?
    Bonjour,

    Je suis un super débutant en programmation orianté objet, je sais se que sont des classes, des objets, les héritages, l'encapsulation, mais je ne comprend pas se que c'est le POLYMORPHISME ?

    Pourriez vous m'expliquer avec des exemples de la vie réel ?

    Après avoir lu plus de cours sur le sujet j'ai du mal à comprendre.

    Merci d'avance

    Arnaud

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2007
    Messages : 60
    Points : 64
    Points
    64
    Par défaut
    bonjour

    le polymorphisme (d'apré ce que j'ai compris !) c'est la capacite de pouvoir voir un objet comme instance d'un autre objet englobant.

    ex: une toyota c'est une voiture
    une voiture c'est un vehicule
    une vehicule est un moyen de transport
    ..

    tu peux dire en java
    MoyenDeTransport t = new Toyota();

    ton objet 't' tu peux le traiter comme un moyens de transport en gros, meme si en realite c'est une toyota

    Tous les moyens de transport "se deplacen"...

    quand tu dis t.deplace() c'est correct car 't' est un moyen de transport, mais en realité lorsque tu lui dira de se deplacer , il se deplacera comme une toyota.

    c'est ça la difference entre compilation et exécution !!

    En pratique on utilise le polymorphisme pour avoir un code facile à maintenir et faire evoluer , on essaie de rester le plus global possible, exemple :
    c'est plus intéressant d'ecrire List al =new ArrayList(); que ArrayList al = new ArrayList();

  3. #3
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut
    ok merci beaucoup !

    J'ai lu aussi le cours sur la POO sur developpez.com, où j'ai trouvé de bonnes explications aussi.

  4. #4
    alex_pi
    Invité(e)
    Par défaut
    Citation Envoyé par arnaudperfect
    Je suis un super débutant en programmation orianté objet, je sais se que sont des classes, des objets, les héritages, l'encapsulation, mais je ne comprend pas se que c'est le POLYMORPHISME ?

    Pourriez vous m'expliquer avec des exemples de la vie réel ?
    benben02 a expliqué avec des "exemples de la vie réelle", je vais ajouter mon grain de sel un chouilla plus théorique.
    Ce qui suit n'est pas totalement rigoureux, mais il me semble que pour le cas qui nous intéresse, c'est suffisant.

    Un type T peut être vu comme un ensemble. C'est l'ensemble des éléments de ce type. En programmation objet par exemple, une classe définit un type, qui pourrait être "l'ensemble des objets ayant les attribus et les méthodes avec les signatures imposés par la déclaration de la classe" (bon, techniquement, ce n'est pas exactement vrai, parce que si tu déclares deux classes foo et bar avec les même attribus et les même methodes, elles ne définiront pas le même type dans la majorité des langages objets, mais faisons comme si ;-))

    On parle alors de polymorphisme lorsque l'on attend quelque part un élément d'un certain type, et que ce type en contient d'autre. Or une classe fille héritant des méthodes et des attribus de la classe mère, elle définit un type inclu dans celui de la classe mère. Ce qui entraine que quand un objet instance de la classe mère est attendu, on peut en fait utiliser un objet instance de la classe fille. On a polymorphisme :-)

    Mais il y a des polymorphismes beaucoup plus puissant que ça. Par exemple le polymorphisme "à la ML" que l'on va typiquement trouver dans un langage comme OCaml (qui a dit monomaniaque ?). On peut par exemple définir une fonction "trier" de type "('a -> 'a -> int) -> 'a list -> 'a list". Ce type se lit :
    Pour tout type 'a, la fonction "trier" attend en argument
    • une fonction (compare) qui prend deux arguments de type 'a et retourne un entier
    • un liste d'éléments de type 'a

    et elle retourne une liste d'éléments de type 'a.
    Ceci signifie que pour n'importe quel type, il me suffit de définir une fonction de comparaison, et je peux alors utiliser ma fonction de tri parfaitement polymorphique. Et on peut faire des choses encore plus fun :-)

  5. #5
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    J'avais ecrit quelque chose sur le sujet du polymorphisme: http://www.bourguet.org/cpp/type.pdf.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/09/2011, 16h15
  2. est ce que mysql me convient il dans mon projet?
    Par sws2008 dans le forum MySQL
    Réponses: 4
    Dernier message: 22/09/2008, 10h23
  3. 2 Define est ce que je peut les mettre dans un entete séparé !
    Par ..::snake::.. dans le forum Bibliothèques
    Réponses: 30
    Dernier message: 18/06/2007, 16h45
  4. Réponses: 3
    Dernier message: 26/04/2007, 11h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo