Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme avec Object

    15 avril 2009 à 12:05:21

    salut tout le monde
    j'ai un probleme avec la classe Object
    c'est le meme code presenté dans le tuto de java a patie d'heritage
    for(Object obj : tableau){
    	     System.out.println(obj.toString()+"\n");
    

    il me dit qu'il faut changer le type obj to Ville meme si j'ai polymorphie la methode toString
    si vous avez une idée aidez moi
    s'il vous plais
    et merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      15 avril 2009 à 12:07:35

      On ne peux pas dire beaucoup de chose avec si peu d'info
      • Partager sur Facebook
      • Partager sur Twitter
      J'ai tous les badges d'OpenClassrooms.
        15 avril 2009 à 12:12:57

        Faut lire le tuto juqu'à la fin.

        Il dis qu'il faut transtyper le type Object en Ville avant de faire appelle à la méthode :
        for(Object obj : tableau){
        	     System.out.println(((Ville) v).toString()+"\n");
        


        Enfin si ton tableau est de type Ville parce que là c'est vrai qu'il y a peu d'infos.

        • Partager sur Facebook
        • Partager sur Twitter
          15 avril 2009 à 14:20:00

          d'abord merci pour votre reponses et je m'excuse pour la mal description de mon probleme
          quand je compile ce code(c'est le meme dans la partie du cours d'heritage):
          //Def d'un tableau de ville null
             Ville[] tableau = new Ville[6];
                  
             //Définition d'un tableau de noms de Villes et d'un tableau de nombres d'habitants
             String[] tab = {"Marseille", "lille", "caen", "lyon", "paris", "nantes"};
             int[] tab2 = {123456, 78456, 654987, 75832165, 1594,213};
                   
             /* Les 3 premiers éléments du tableau seront des Villes
                et le reste des capitales
             */
             for(int i = 0; i < 6; i++){
               if (i <3){
                 Ville V = new Ville(tab[i], tab2[i], "france" );
                 tableau[i] = V;
               }
                   
               else{
                 Capitale C = new Capitale(tab[i], tab2[i], "france", "Sarko");
                 tableau[i] = C;
               }
             }
                           
             //il ne nous reste plus qu'à décrire tout notre tableau !
             for(Object obj : tableau){
               System.out.println(obj.toString()+"\n");
             }
          

          il me dit qu'il faut changer le type obj to Ville meme si j'ai polymorphie la methode toString
          et cysboy nous dit que nous n'avons pas à soucier du type d'objet pour afficher sa description
          et le transtypage on le fait si on utilise par exemple la methode decristoi() et celle ci ne se trouve pas dans la calsse object.n'est ce pas?



          • Partager sur Facebook
          • Partager sur Twitter
            15 avril 2009 à 14:48:19

            Bizarre, pourtant il devrait reconnaitre la méthode toString (). (enfin si la méthode est polymorphe)

            Mais les prototype de toutes les méthodes doivent être les mêmes :

            public String toString ()

            Et cette méthode doit être redéfinie dans Ville et Capitale pour que ça marche.






            • Partager sur Facebook
            • Partager sur Twitter
              15 avril 2009 à 15:04:11

              oui c'est ce que je fais j'ai polymophé toString() dans Ville et capitale
              et ça marche pas
              • Partager sur Facebook
              • Partager sur Twitter
                15 avril 2009 à 17:52:38

                Bizarre alors... encore un bug du jdk ?

                • Partager sur Facebook
                • Partager sur Twitter
                  15 avril 2009 à 18:46:01

                  Est-ce que tu as bien redéfini la méthode toString dans tes deux classes (Ville et Capitale) est-ce qu'elles ont bien cette signature "public String toString()" et est-ce que tu as mis l'annotation "@Override" juste en-dessus de la méthode et finalement est-ce que Capitale fait bien un extends de Ville?

                  Si tu as fait tout cela, je ne vois pas d'où l'erreur pourrait venir. Et non le JDK ne bug pas pour des trucs si basiques.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    16 avril 2009 à 13:47:34

                    Je confirme (à 99% parce qu'on est jamais totalement sûr) que le morceau de code présenté est correct. L'erreur doit se trouver ailleurs. janulrich0001 semble sur la bonne voit pour la recherche de l'erreur. Tu as dû avoir un problème lors de la surcharge de ta fonction.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    probleme avec Object

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown