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

Langage Java Discussion :

[POO] Heritage d'attribut statique surchargé !


Sujet :

Langage Java

  1. #21
    Membre régulier Avatar de nin2
    Profil pro
    Inscrit en
    Février 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations forums :
    Inscription : Février 2005
    Messages : 100
    Points : 109
    Points
    109
    Par défaut
    Ta méthode fonctionne KiLVaiDeN mais le seul problème c'est que l'attribut "static int attribut" de tes sous classes n'est pas défini dans ta super classe. Donc si tu veux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    A a = new B();
    a.attribut;
    et bien ca ne marchera pas ...

  2. #22
    Membre régulier
    Avatar de Jaxofun
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 108
    Points : 84
    Points
    84
    Par défaut
    Mais bon si tu nous en disais un peu plus sur le but, comme le disais nin2 y a peut être une solution plus propre à ce que tu veux faire
    Je croyais avoir été assez explicite en bas de la page 1.

    En tout cas un grand merci à tous. Je vais continuer à reflechir sur vos suggestion ce WE. Mais si d'autre idées vous viennent n'hesitez pas !

  3. #23
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Citation Envoyé par nin2
    Ta méthode fonctionne KiLVaiDeN mais le seul problème c'est que l'attribut "static int attribut" de tes sous classes n'est pas défini dans ta super classe. Donc si tu veux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    A a = new B();
    a.attribut;
    et bien ca ne marchera pas ...
    Vu que c'est une variable de classe statique, normalement il ne devrait pas y accéder avec le nom de l'objet, mais plutot avec le nom de la classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    B.attribut; // ( normalement, plutot un getAttribut() )
    K
    K

  4. #24
    Membre régulier Avatar de nin2
    Profil pro
    Inscrit en
    Février 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations forums :
    Inscription : Février 2005
    Messages : 100
    Points : 109
    Points
    109
    Par défaut
    Oui c'est vrai ! Décidément, je suis pas bien réveillé cet après midi ... vivement le WE.

    Un peu de repos ne me fera pas de mal ...

  5. #25
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Et, plutôt que de se prendre la tête autour d'un attribut (static ? abstract ??), une possibilité serait de définir une méthode getAuthorizedProfiles() au niveau de la super classe abstraite Action, quitte à la redéfinir au besoin dans les classes filles :
    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
    16
    17
    public abstract class AbstractAction {
    ...
      private List defaultProfiles;
     
      private List getDefaultProfiles() {
        if (defaultProfiles == null) {
          defaultProfiles = new ArrayList();
          ...
        }
        return defaultProfiles;
      } 
     
     
      public List getAuthorizedProfiles() {
        return getDefaultProfiles();
      }
    }
    et dans une classe fille :
    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 SecurisedAction extends AbstractAction {
     
      private List securisedProfiles;
     
      public List getAuthorizedProfiles() {
        if (securisedProfiles == null) {
          securisedProfiles = new ArrayList();
          ...
        }
        return securisedProfiles;
      }
    }

  6. #26
    Membre régulier
    Avatar de Jaxofun
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 108
    Points : 84
    Points
    84
    Par défaut
    Merci Herve91 pour ta solution qui me semble la plus appropriée !

    Merci à tous les autres pour votre aide !


+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [Access] select heritage selon attribut
    Par Bapt.ice dans le forum Langage SQL
    Réponses: 8
    Dernier message: 25/04/2006, 16h25
  2. [POO] Héritage multiple Parent
    Par djshaker dans le forum Langage
    Réponses: 15
    Dernier message: 15/03/2006, 17h35
  3. [POO] retourner les attributs d'une classe
    Par ozzmax dans le forum Langage
    Réponses: 10
    Dernier message: 12/01/2006, 00h10
  4. [POO] Objet en attribut d'un objet
    Par Tchinkatchuk dans le forum Langage
    Réponses: 7
    Dernier message: 06/12/2005, 10h00
  5. Réponses: 7
    Dernier message: 18/10/2005, 12h50

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