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 :

Polymorphisme ou transtypage ou autres?


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut Polymorphisme ou transtypage ou autres?
    Bonjour,
    Débutant en Java, j'ai du mal a savoir si je fais du Polymorphisme :
    Je dois mettre des objets de classes differentes dans un même tableau.
    Certains de ces objets héritent les uns des autres, et certains n'implémente que l'interface commune a toutes les classes.
    La gestion de ce tableau relève t-elle du polymorphisme?

  2. #2
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut
    Je précise un petit peu, par exemple
    J'ai une interface EtreInterface qui dispose d'une méthode abstraite calculerAge.
    J'ai deux classes Humain et Animal qui font appel a cette interface (...timplements EtreInterface)

    J'ai une classe Calcul dont la méthode trouverAge me renvoi l'indice du tableau pour lequel l'age est le + vieux.
    dans ma classe Calcul j'ai donc :
    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
    public class Calcul  {
    EtreInterface[] lesEtres; 
     
    //Services 
    public int trouverAge(){
    int age = 0.0;
    int indice = 0 ;
    int i = 0;
        for (i = 0; i < this.lesEtres.length; i++){
            if (this.lesEtres[i].calculerAge() > age){
               age = this.lesEtres[i].calculerAge()
               indice = i ;
            } 
        }
     return indice;
    Dans mon main
    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) {
            Calcul nwObjCalcul;
            nwObjCalcul = new Calcul();
     
     
            nwObjCalcul.lesEtres = new EtreInterface[2];
     
            nwObjCalcul.lesEtres[0] =  new Humain(19720907);
            nwObjCalcul.lesEtres[1] =  new Annimal(20020101);
            System.out.println(nwObjCalcul.trouverAge());
    A mon avis la j'utilise le concept de polymorphisme, si Animal hérité de Humain j'aurais pu faire du transtypage.
    Merci de me corriger.

  3. #3
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Il y a sur le site un dico du développeur où tu pourras trouver des définitions des termes.

    Ici à mon avis (ces discussions d'experts sont toujours délicates parce qu'il y a toujours un expert pour prétendre avoir raison contre les autres ! ) il est difficile de parler de polymorphisme, parce que une interface en java définit un contrat qu'il faut respecter sans lui donner 36 formes.

    Cependant on pourrait s'appuyer sur le fait que en java les interfaces sont vues comme des objets classes pour avoir d'autres opinions.

    Je ne vois pas non plus de transtypage, notion qui n'existe pas entres classes en java (sauf à le faire à la main) (et on parle plutôt de mapping, d'ailleurs).

    Il n'y a donc que des objets de classe Animal et Humain qui obéïssent au contrat EtreInterface. Ils n'ont pas d'autres rapports entre eux.

    La gestion du tableau profite du contrat EtreInterface.calculerAge. C'est tout pour moi.

Discussions similaires

  1. Réponses: 6
    Dernier message: 14/10/2008, 00h37
  2. polymorphisme et autre
    Par jbeauport dans le forum C++
    Réponses: 15
    Dernier message: 29/06/2005, 13h43
  3. [langage] Comparer Perl avec d'autres langages comme C ?
    Par Anonymous dans le forum Langage
    Réponses: 3
    Dernier message: 10/08/2002, 23h52
  4. Réponses: 2
    Dernier message: 21/05/2002, 10h25
  5. Réponses: 3
    Dernier message: 09/05/2002, 01h39

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