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

Langage Java Discussion :

Le polymorphisme en Java


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 65
    Par défaut Le polymorphisme en Java
    bonjour ,je suis débutante en java
    j'essai depuis ce matin de comprendre le plymorphisme en java mais j'arrive pas ,j'ai lu plusieurs documents mais j'arrive pas !!
    est ce que vous pouvez me l'expliquer d'une maniére beaucoup plus simple sans un code ??? merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 802
    Par défaut
    Pour faire très simple, le polymophisme est une technique particulière d'héritage. Elle consiste, lorsqu'on hérite d'une classe, à redéfinir l'une des méthodes pour la spécialiser.

  3. #3
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    le plus simple je pense et de chercher "polymorphisme java" dans un moteur de recherche. Tu auras de nombreuses définitions et exemples.

    Je me lance dans une explication et j'espère ne pas t'induire en erreur, car ce n'est pas vraiment facile à expliquer ...

    En gros, c'est un concept objet qui consiste à pouvoir utiliser la "même" méthode sur des objets différents.

    exemple banal. Tu prends une classe et des sous classes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    class Animal {
        void deplacer() {
            System.out.println("Je bouge");
        }
     
    class Chien extends Animal {
        void deplacer() {
            System.out.println("Je marche");
        }
    }
     
    class Oiseau extends Animal {
        void deplacer(){
            System.out.println("Je vole");
        }
    }
     
    class Pigeon extends Oiseau {
        void deplacer() {
            System.out.println("Je vole et en plus ... sur les passants");
        }
    }
    Sur toutes ces classes, tu peux donc appeler deplacer(). Le polymorphisme permet alors d'appeler la bonne méthode selon le type d'objet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public static void main(String[] args) {
     
     Animal a1 = new Animal();
     Animal a2 = new Chien();
     Animal a3 = new Pigeon();
     
     a1.deplacer();
     a2.deplacer();
     a3.deplacer();
    }
    et à l'exécution ça te donne :
    Je bouge
    Je marche
    Je vole et en plus ... sur les passants

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    Juste un petit complément qui peut être intéressant...

    Généralement on définit la classe mère comme étant abstraite et on oblige les objets réels à définir leur comportement :

    Tu trouveras également de nombreux exemples sur les figures (triangle, carré, ...).

    Genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    abstract class Figure
    {
        private String couleur;
     
        class Figure (String couleur)
        {
            this.couleur = couleur;
        }
     
        public String getCouleur()
        {
            return couleur;
        }
     
        abstract int getSurface();
    }
    Et après tu fais Triangle extends Figure, Carre extends Figure, ...

  5. #5
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    Pour reprendre l'exemple de in, cela est particulièrement intéressant avec les conteneurs (Vector, List etc.).
    Image que tu veuilles mettre des instances dedans, des chiens, des pigeons etc. et que tu veuilles qu'ils se déplaces tous.
    Pour cela, il te suffit de créer un conteneur d'animal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    List<Animal> lst=new ArrayList<Animal>();
    et d'appeler la méthode deplacer sur chaque élément:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for(int i=0;i<lst.size();i++){
       lst.get(i).deplacer(); // Appellera la méthode propre à chaque animal.
    }

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 19
    Par défaut
    Citation Envoyé par iohack Voir le message
    Pour reprendre l'exemple de in, cela est particulièrement intéressant avec les conteneurs (Vector, List etc.).
    Image que tu veuilles mettre des instances dedans, des chiens, des pigeons etc. et que tu veuilles qu'ils se déplaces tous.
    Pour cela, il te suffit de créer un conteneur d'animal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    List<Animal> lst=new ArrayList<Animal>();
    et d'appeler la méthode deplacer sur chaque élément:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for(int i=0;i<lst.size();i++){
       lst.get(i).deplacer(); // Appellera la méthode propre à chaque animal.
    }
    stp,dans ce cas là ça sera afficher que le message "je bouge " tant que le tableau est n'est pas vide???

  7. #7
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    Citation Envoyé par Duc Lebowski Voir le message
    Juste un petit complément qui peut être intéressant...

    Généralement on définit la classe mère comme étant abstraite et on oblige les objets réels à définir leur comportement :

    Tu trouveras également de nombreux exemples sur les figures (triangle, carré, ...).

    Genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    abstract class Figure
    {
        private String couleur;
    
        public Figure (String couleur)
        {
            this.couleur = couleur;
        }
    
        public String getCouleur()
        {
            return couleur;
        }
    
        abstract int getSurface();
    }
    Et après tu fais Triangle extends Figure, Carre extends Figure, ...
    Je te corrige une petite erreur.

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    Merci iohack ! Affectivement !

Discussions similaires

  1. JAVA EE et polymorphisme d'inclusion?
    Par backlash dans le forum Java EE
    Réponses: 1
    Dernier message: 02/11/2012, 14h00
  2. polymorphisme en java
    Par l'unique dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 20/12/2010, 18h20
  3. Réponses: 7
    Dernier message: 18/06/2008, 19h01
  4. Polymorphisme en java ?
    Par cannavaro2006 dans le forum Langage
    Réponses: 3
    Dernier message: 31/01/2007, 13h17
  5. débutant java Polymorphisme
    Par Bba_M dans le forum Langage
    Réponses: 8
    Dernier message: 12/06/2006, 09h39

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