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 :

Héritage et champ statique


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 2
    Par défaut Héritage et champ statique
    Bonjour à tous,

    Avant de m’agresser, je le dis déjà j'ai cherché un peu partout sur internet grâce à mon ami Google (depuis que j'ai 7 ans à force de zoner sur internet et de voir les gens me dire que c'est mon meilleur ami, j'ai fini par le comprendre ), mais je n'ai pas trouvé de réponse clair et satisfaisante. Je n'ai pas effectué de test parce que je suis sur que quelqu'un s'est déjà posé la question et pourrait me répondre assez rapidement.

    Pour expliqué mon problème:

    J'ai un champ statique dans une classe: "" protected static int champ1; ""
    !! J'ai une méthode qui utilise ce champ statique dans la classe mère. !!
    Trois classes filles viennent de cette classe mère.

    Quand, je crée une méthode d'instance (je sais plus le nom exacte ) d'une classe fille de cette manière:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public Fille1() {
    super();
    Fille1.champ1 = 21;
    }

    Est-ce que c'est le champ statique de la classe mère qui va changer (et donc champ1 va être modifié dans la classe Fill1, Fille2 et Fille3) ou alors je changerai juste le champ statique de la classe hérité Fille1 ?
    Parce que le champ statique de Fille1 doit être différent que celui de Fille2 et de Fille3.

    Sinon, sachant que je veux éviter le copy-pasta de la méthode qui doit réagir différemment en fonction de la valeur du champ statique, comment je pourrais faire ?

    Merci beaucoup.

    Edit: On m'a répondu sur un autre forum que je changerai le champ de la classe mère donc du coup, ma méthode de ma classe mère va utiliser un champ qui n'existe pas mais qui existe dans les classes filles, ce n'est pas grave ?

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    C'est bien simple, les champs statiques ne sont pas hérités en java. Donc, si tu a une mère et une fille, chacune ayant un champ statique du même nom, tu dois toujours regarder dans quelle classe est implémentée une méthode utilisant le champ statique. Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public classe Mere {
        public static int champ = 0;
        public void faireMachin(){
           champ++;
        }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public classe Fille extends Mere{
        public static int champ = 0;
        public void faireBidule(){    
           champ = 69;
           faireMachin();
        }
    }
    et que tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new Fille().faireBidule();
    Tu va avoir au finale: Mere.champ=1 (car 0++) et Fille.champ=69;

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 2
    Par défaut
    Merci beaucoup

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

Discussions similaires

  1. Héritage et champs statiques
    Par bomehc dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 26/02/2013, 09h55
  2. Réponses: 9
    Dernier message: 13/07/2007, 11h03
  3. Réponses: 4
    Dernier message: 13/09/2006, 16h02
  4. [héritage] Héritage et champs statiques.
    Par salome dans le forum Langage
    Réponses: 4
    Dernier message: 03/04/2005, 20h21
  5. [héritage] Héritage et champs statiques.
    Par salome dans le forum Langage
    Réponses: 2
    Dernier message: 02/04/2005, 00h11

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