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

avec Java Discussion :

Question à propos de l'héritage


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 80
    Par défaut Question à propos de l'héritage
    bonjour;
    je voudrais s'il vous plait savoir si les variables static dans une classe sont hérité dans une sous classe je sais que les méthodes static sont pas hérite mais pour les variables static je sais pas.
    merci

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Les variables et les méthodes static sont héritées par les sous-classes : elles y ont accès direct (sauf si elles sont private bien sûr).

    Je ne sais pas pourquoi tu dis que les variables static ne sont pas héritées.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public class Mere {
      public static int donnée = 0;
    }
     
    class Fille extends Mere {
     
      int doSomething() {
        // ça compile, ça marche : Fille a donc hérité de donnée.
        donnée++;
        return donnée;
      }
     
    }
    Il y a une différence entre static et pas-static, oui, et cette différence est la même à l'héritage. Ça ne veut pas dire qu'il n'y a pas d'héritage.

    De la même manière, les méthodes sont héritées aussi :

    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 Mere {
      public static void faireQuelqueChose() {
     
      }
    }
     
    class Fille extends Mere {
     
      public int doSomethingElse() {
        // ça compile, ça marche : Fille a donc hérité de faireQuelqueChose().
        faireQuelqueChose();
        return 0;
      }
     
    }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 80
    Par défaut
    je te recopie ce que j'ai sur mon cours peut etre que j'ai due mal comprendre

    cas des méthodes statiques
    -(Cf. remarque début cours aujourd'hui)
    -une méthode statique n'est jamais héritée
    -mais elle accepte des arguments d'une sous-classe

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Bah c'est une question de définition. Qu'est-ce que ça veut dire au juste.

    Qu'est-ce que ça veut dire, hériter d'une variable membre ?
    Qu'est-ce que ça veut dire, hériter d'une méthode ?

    Ça veut dire une chose toute simple : quand une classe fille hérite d'une variable ou d'une méthode d'un type ascendant (classe mère, classe grand-mère, interface implémentée...)
    ça signifie que la classe fille a accès à cette variable ou cette méthode, avec la même syntaxe que si elle avait elle-même défini la variable ou la méthode. Elle la "voit" et peut s'en servir de la même manière que sa classe mère.

    C'est ce qu'illustrent mes exemples au-dessus.
    Selon cette définition, les variables et méthodes sont héritées, qu'elles soient statiques ou pas.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 80
    Par défaut
    merci thelvin heureusement que j'ai posé la question sinon je serais partie sur de mauvaise base

  6. #6
    Membre expérimenté Avatar de Vikisme
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2007
    Messages : 172
    Par défaut
    Petite précision, lorsque l'on dit que les variables statiques ne sont pas héritées, c'est sans doute pour préciser que même si on y a accès, la variable n'est pas héritée dans le sens ou elle reste propre à la classe Mère...
    Je m'explique, dans l'exemple ci-dessus, la fille a accès la variable "donnée" qu'elle peut manipuler. Mais si elle manipule cette variable, elle ne manipule pas une variable propre à la fille mais bien celle de la mère... Si une autre classe hérite de la classe Mère et qu'elle manipule également la variable "donnée", il ne faudra pas oublié que cette variable statique est celle de la mère et non des filles (attention aux effets de bord).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/07/2014, 13h11
  2. Questions à propos de l'héritage en Java
    Par soze92 dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 17/08/2012, 22h27
  3. Petite question à propos du redbook...
    Par Michaël dans le forum OpenGL
    Réponses: 3
    Dernier message: 04/11/2004, 12h54
  4. Petite question à propos d'une requete
    Par ViBy dans le forum Langage SQL
    Réponses: 4
    Dernier message: 15/09/2004, 12h21
  5. Une question à propos des thread
    Par tscoops dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/11/2003, 14h03

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