tshupaka
Messages postés9Date d'inscriptiondimanche 5 janvier 2003StatutMembreDernière intervention13 juillet 2005
-
12 juil. 2005 à 14:30
cs_ducheseb
Messages postés344Date d'inscriptionmardi 18 mai 2004StatutMembreDernière intervention23 juin 2006
-
13 juil. 2005 à 18:58
Bonjour,
En gros, j'ai une classe abstraite :
public abstract class ServiceClient {
protected static final String CONFIG_FILE="";
protected static final String RULES_FILE="";
public void init(){
.... CONFIG_FILE...
... RULES_FILE...
}
}
Cette classe n'est jamais instancié, pour ça j'ai une autre classe :
public class ConsultationClient extend ServiceClient {
protected static final String CONFIG_FILE="config.xml";
protected static final String RULES_FILE="digester.xml";
}
donc si j'instancie la classe ConsultationClient et que j'invoque la
méthode init, j'aimerais que la valeur de CONFIG_FILE et RULES_FILE
soit respectivement "config.xml" et "digester.xml".
Mais voila, le pb c que les valeurs sont "" et "" (il ne prend pas les
valeurs de la sous classe, mais le valeur de la classe mère)
cs_ducheseb
Messages postés344Date d'inscriptionmardi 18 mai 2004StatutMembreDernière intervention23 juin 20069 12 juil. 2005 à 15:19
Dans ta classe fille, tu définies des champs propre à ta classe, si tu veux utiliser les champs de la classe mère, tu peux écrire:
ServiceClient.CONFIG_FILE ="config.xml";
tshupaka
Messages postés9Date d'inscriptiondimanche 5 janvier 2003StatutMembreDernière intervention13 juillet 2005 12 juil. 2005 à 15:29
oui, mais justement, si CONFIG_FILE est définie en static, je peux pas
le modifier dynamiquement (sans le surcharger). Je n'ai aucune méthode
dans la classe fille, juste la redéfinition des deux attributs
statique. les methodes sont définies dans la classe mère mais doivent
utiliser les valeurs des constantes de la classe fille. C'est un peu
complexe, mais ça simplifie drolement mon code de faire comme ça !
tshupaka
Messages postés9Date d'inscriptiondimanche 5 janvier 2003StatutMembreDernière intervention13 juillet 2005 13 juil. 2005 à 08:45
Effectivement, mais justement, le principe est qu'il y a plusieur
classe fille (ConsultationClient, UserManagementClient,...) et donc la
valeur changera en fonction de la classe.
Par exemple si ConsultationClient est instancié, CONFIG_FILE aura pour
valeur "consultationClientConfig.xml" et sera utilisé dans la méthode
init de la classe mère ServiceClient.
Si UserManagementClient est instancié, CONFIG_FILE aura pour valeur
"userManagementClientConfing.xml" et sera utilisé dans la méthode init
de la classe mère ServiceClient.
J'ai beau chercher, je comprend pas pourquoi il utilise la valeur de
ServiceClient au lieu de celle de ConsultationClient alors que le type
dynamique de l'objet et ConsultationClient...
Vous n’avez pas trouvé la réponse que vous recherchez ?