Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème d'héritage

Sujet résolu
    3 juillet 2008 à 16:46:47

    Bonjour,

    J'ai suivi le tuto de java mais là je rencontre un problème sur le chapitre L'Héritage.

    Voilà dans le chapitre premiers pas : Programation Orientée Objet j'ai créer un projet 08_P_O_O (main: poo.java et une classe à part Ville.java
    Ensuite j'ai créé un autre projet 09L_Heritage (main: heritage.java et une autre classe à part Capitale.java)

    Le problème c'est quand je fais dans ma classe Capitale.java, on me souligne Ville

    class Capitale extends Ville {
      
    }
    


    J'ai également essayé de mettre ce même code après ma classe Ville.java et cette fois on me souligne Capitale.

    Où est-ce qu'il faut placer ce code pour que ça marche et que ça reconnaisse la classe mère.

    Merci de pouvoir m'aider.
    • Partager sur Facebook
    • Partager sur Twitter
      3 juillet 2008 à 16:52:20

      généralement on met une classe par fichier ;)

      et aussi le fichier.java qui contient le main porte le même nom que le nom du projet.
      • Partager sur Facebook
      • Partager sur Twitter
        3 juillet 2008 à 17:08:29

        ben c'est ce que j'ai essayé de faire, une classe par fichier mais pas l'autre.

        Cela ne résoud pas mon problème car je ne sais toujours pas où placer ce code pour qu'il fonctionne.
        • Partager sur Facebook
        • Partager sur Twitter
          3 juillet 2008 à 17:27:16

          Il faut que tu fasses un importe de ta classe.

          Par exemple, si une classe A, d'un package p1, étend une classe B d'un package p2, il faut faire comme suit :

          import p2.B;
          
          public class A extends B{
          [...]
          }
          


          Dans le cas de "projets", je suppose que c'est avec Eclipse, comme dans le tutoriel, je ne sais pas faire.
          Je te conseil d'organiser tes classes dans deux packages séparés mais dans un seul et même projet.
          • Partager sur Facebook
          • Partager sur Twitter
            3 juillet 2008 à 19:44:44

            Je ne sais pas comment faire 2 packages séparés.

            Moi je crois que j'ai 2 projets avec 2 classes pour chaque projet(une main pour chaque classe (poo.java et heritage.java) et la classe Ville.java utilisée par poo.java et la classe Capitale.java utilisé par heritage.java.

            J'ai essayé et ça n'a pas marché
            import poo.Ville ;
            
            public class Capitale extends Ville {
            
            }
            

            J'ai aussi essayé 08P_O_O.Ville et pareil

            Peut-tu m'aider STP. N'y a t-il pas moyen de garder mes 2 projets et réussir à importer ma classe Ville.java qui se trouve dans le projet 08P_O_O ?

            Merci
            • Partager sur Facebook
            • Partager sur Twitter
              3 juillet 2008 à 19:47:50

              copie ta class Ville dans ton nouveau projet ^^ un clisser deposer fera l'affaire.
              • Partager sur Facebook
              • Partager sur Twitter
              Le développement de jeu vidéo vous intéresse ? Parlons en !
                3 juillet 2008 à 19:51:55

                Oui j'avais déjà essayé ça aussi, j'ai mis ma classe Ville avant de faire
                public class Capitale extends Ville mais ça me souligne ma classe Ville que j'ai mis au début
                • Partager sur Facebook
                • Partager sur Twitter
                  3 juillet 2008 à 19:56:28

                  Pour que ca marche tu doit avoir :

                  Un projet qu'on nommera par exemple : Heritage
                  Se projet doit contenir un package que tu pourra nommer : td_heritage
                  - une classe que l'on peut nommer : Heritage.java
                  - une autre que l'on peut nommer : Capitale.java
                  - et enfin : la fameuse classe Ville.java

                  Si en respectant cette hiérarchie ca ne fonctionne pas je ne sais pas se qu'il faut faire :(
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Le développement de jeu vidéo vous intéresse ? Parlons en !
                    3 juillet 2008 à 20:12:36

                    Donc si j'ai bien compris il n'y a qu'un seul projet ?

                    Est-ce qu'il faut créer un package parce qu'il y a déjà default package ?
                    La classe Heritage.java c'est bien le main ?
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      3 juillet 2008 à 20:34:22

                      même histoire que elikakoun
                      mais ce que j'avais fait ds ce point :
                      public class sdz1 {
                          public static void main(String[] args) {
                          	
                      
                      
                       class Capitale extends Ville {
                      	 
                      	 private String president;
                      	  
                      	  /**
                      	   *Constructeur par défaut
                      	   */
                      	   public Capitale(){
                      	     //Ce mot clé appel le constructeur de la classe mère.  
                      	     super();
                      	     president = "aucun";
                      	 //    System.out.println(super.decrisToi());
                      	   }
                      	  
                      	   public Capitale(String nv, int nb, String np, String pre) {
                      		// TODO Auto-generated constructor stub
                      	super(nv,nb,np);
                      	this.president=pre;
                      	   }
                      
                      	/**
                      	    *Description d'une capitale
                      	    */
                      	    public String decrisToi(){
                      	       String str = super.decrisToi() + "\n \t ==>>" + this.president + " est son président";
                      	       //Pour bien vous montrer, j'ai ajouté la ligne ci-dessous, mais vous n'êtes pas obligés...
                      	       //System.out.println("Invocation de super.decrisToi()");
                      	       //System.out.println(super.decrisToi());
                      	       return str;
                      	    }
                      	 }
                       Capitale cap = new Capitale();
                       System.out.println("\n\n"+cap.decrisToi());
                      

                      càd la class ville a été crée à part et la class capitale je la mis ds la class ou il y a le main
                      et ça marche bien jusqu'à maintenant ;)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        3 juillet 2008 à 21:30:59

                        warffff.... la tu bourrine un peu je trouve ^^, y'a bien plus simple hein
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Le développement de jeu vidéo vous intéresse ? Parlons en !
                        Anonyme
                          3 juillet 2008 à 21:47:23

                          tu as raison
                          il suffit de faire <image></image>
                          • Partager sur Facebook
                          • Partager sur Twitter
                            4 juillet 2008 à 15:24:31

                            J'ai réussi à faire marcher mais il n'y a qu'un seul projet et dedans j'ai mon main et 2 classes dont une qui hérite de l'autre.

                            Mon problème est résolu mais je n'y arrive pas avec 2 projets. Je voulais qu'en fait dans mon nouveau projet qu'il y ai une classe qui hérite d'une autre classe se situant dans un ancien/autre projet.

                            Merci à vous.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              4 juillet 2008 à 20:30:27

                              bha tu copie tes vieilles class dans ton nouveau projet. C'est l'avantage de l'objet réutiliser du code pour différents projets.
                              • Partager sur Facebook
                              • Partager sur Twitter
                                10 juillet 2008 à 13:29:56

                                C'est donc ça la réutilisabilité du code, moi je pensais qu'il fallait utiliser un import ou quelque chose dans le genre pour faire référence à une autre classe.

                                Merci pour tout et à tout le monde
                                • Partager sur Facebook
                                • Partager sur Twitter

                                Problème d'héritage

                                × 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