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 :
et bien ca ne marchera pas ...Code:
1
2
3 A a = new B(); a.attribut;
Version imprimable
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 :
et bien ca ne marchera pas ...Code:
1
2
3 A a = new B(); a.attribut;
Je croyais avoir été assez explicite en bas de la page 1. :oops:Citation:
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
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 !
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 :Citation:
Envoyé par nin2
KCode:
1
2B.attribut; // ( normalement, plutot un getAttribut() )
Oui c'est vrai ! Décidément, je suis pas bien réveillé cet après midi ... vivement le WE. :marteau:
Un peu de repos ne me fera pas de mal ...
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 :
et dans une classe fille :Code:
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(); } }
Code:
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; } }
Merci Herve91 pour ta solution qui me semble la plus appropriée !
Merci à tous les autres pour votre aide !
:wink: