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

Java Discussion :

Polymorphisme et héritage en Java


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Décembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 6
    Par défaut Polymorphisme et héritage en Java
    salut

    j'ai une petite question apropos de polymorphism en java :

    si j'ai bien compris on utulise le polymorphism dans le cas ou par exemple on

    a une class fille et une class mere , et on veut crier un objet du class fille on va

    l'enregistrer dans dans un objet du type class mere exmpl:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     classMr monObj = new classFl();
    alors vu que mes variables et methodes de class Mere sont protected ou public

    donc j'ai le droit d'acces , je vois pas la valeur a ajouter de ce polymorphism !!

    pouviez vous me donner un cas precis ou j'aurais recour au polymorphism ?

    et si je fais comme ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     classFl monObj = new classFl();
    au lieu de declaration precedent , je vois pas de changement !!

    merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Le polymorphisme peut être utile dans plusieurs cas.

    Le plus courant est le regroupement d'objets sémantiquement similaires, mais de type différent.
    Exemple :
    Tu as une classe Forme que tu dérives en deux classes : Cercle et Rectangle.
    Si tu veux regrouper plusieurs formes dans un tableau par exemple, tu peux créer un tableau de formes et y stocker des cercles et des rectangles. En gros, tu fait abstraction des particularités dues aux cercles et aux rectangles pour ne garder que leur caractéristiques de formes !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Vector<Forme> formes = new Vector<Forme>();
    formes.add(new Cercle());
    formes.add(new Rectangle());
    Imagine que tu fais un petit programme ou un utilisateur peut créer des cercles et des rectangles. Au lieu de maintenir à jour deux listes (une de cercles et une de rectangles), tu peux regrouper les formes dans une seule liste.
    Si par exemple, dans ta classe Forme, tu as une méthode "afficher" qui affiche "Forme". Dans tes classes Cercle Rectangle, tu surcharge cette méthode pour qu'elle affiche respectivement "Cercle" et "Rectangle". Maintenant, dans ton petit programme, tu veux que chaque forme affiche sa nature (cercle ou rectangle), tu as juste à faire une boucle qui parcourt ta liste et qui appelle la méthode "afficher" sur chacun de ses éléments. Les cercles afficheront automatiquement "Cercle", et les rectangles "Rectangle".



    Ensuite, tu as des cas d'utilisation ou il est moins évident de voir le polymorphisme. Par exemple, si tu crée une interface graphique en Swing, tu rencontreras souvent un code du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    JButton button = new JButton("Quitter");
    button.addActionListener(new QuitButtonListener());
     
    ...
     
    private class QuitButtonListener implements ActionListener {
        public void actionPerformed(ActionEvent event) {
            System.exit(0);
        }
    }
    Ici, si une action (click de souris par exemple) est exécutée sur ton boutton, les ActionListener enregistrés auprès du bouton vont être appelés. En fait, le bouton possède un tableau de ActionListener. Et quand tu en ajoute un comme dans le code si dessus, c'est le polymorphisme qui est utilisé : le nouvel objet QuitButtonListener est réduit à ses caractéristiques de ActionListener car le bouton n'a besoin que de cette partie là.

    J'espère être clair

  3. #3
    Membre régulier
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Décembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 6
    Par défaut
    merci Enerian

    oui c'est claire maintenant j'ai une vision sur le polymorphism plus claire q'avant.

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    n'oublie pas le bouton

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

Discussions similaires

  1. Héritage en java
    Par kayzer_59 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 28/05/2008, 21h23
  2. Héritage en java
    Par caro_caro dans le forum Langage
    Réponses: 1
    Dernier message: 07/03/2008, 10h18
  3. Héritage / Covariance / Java 5
    Par Akira dans le forum Langage
    Réponses: 3
    Dernier message: 08/05/2007, 18h22
  4. polymorphisme d' héritage
    Par loacast dans le forum C++
    Réponses: 3
    Dernier message: 30/01/2007, 11h13
  5. Generics et héritage avec Java 5.0 Tiger
    Par euyeusu dans le forum Langage
    Réponses: 3
    Dernier message: 17/01/2007, 11h41

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