Partage
  • Partager sur Facebook
  • Partager sur Twitter

[JAVA] héritage....

    6 janvier 2007 à 21:06:20

    Bonjour,
    voila j'ai la classe durée et la classe longueDurée qui hérite de durée. je ve redéfinir la méthode inf qui retourne vrai si la durée est inférieur à le durée en paramètre. Je voudrais juste que quelqu'un m'aide à redéfinir la fonction inf car j'ai de gros doute avec l'utilisation de super etc...


    public class durée
    {
        int seconde;
        int minutes;
        int heures;
        ...
        boolean inf (durée d)
       {
    return(this.getheures()<d.getheures()||(this.getheures()==d.getheures()&&this.getminutess()<d.getminutes())||(this.getheures()==d.getheures()&&this.getminutes()==d.getminutes()&&this.getsecondes()<d.getsecondes()));
         }
        ...
    }

    public class longueDurée extend durée
    {
        int jour;
        ...
        boolean inf (longueDuree d)
        {
            return(???????);
        }
    }

    Le but est évidemment d'utiliser au maximum la classe durée.
    Ce qui me pose problème est surtout que le type du paramètre ne soit plus le meme....

    Merci d'avance!!
    • Partager sur Facebook
    • Partager sur Twitter
      6 janvier 2007 à 22:03:51

      la méthode "inf" de la classe duree est fausse car :
      si "this.getheures()<d.getheures()" il se peut que "this.getminutess()>d.getminutes()" (qui n'apparait pas dans ton code)
      • Partager sur Facebook
      • Partager sur Twitter
        6 janvier 2007 à 22:52:09

        Salut,

        vu que le type de paramètre ne sera pas le même, tu ne pourras pas redéfinir cette methode, mais tu pourras juste en faire une surcharge.

        une surcharge c'est une méthode qui à le même nom, mais pas la même signature. La signature d'une fonction est definie par son nom, et ses paramêtres.

        Alors, pendant l'execution le choix entre une ou l'autre méthode sera fait selon ce qui sera passé en paramètre.

        admetons que tu aies ça :


        durée d1 = durée();
        longueDurée d2 = longueDurée();
        longueDurée d3 = longueDurée();

        // méthode inf(durée)
        d1.inf(d2);

        // méthode inf(durée)
        d2.inf(d1);

        // méthode inf(longueDurée)
        d2.inf(d3);



        j'espère avoir repondu à ta question
        • Partager sur Facebook
        • Partager sur Twitter

        [JAVA] 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