Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1556 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Forcer les classes filles à avoir des méthodes/attributs static

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Forcer les classes filles à avoir des méthodes/attributs static

n°2048101
electricbl​ue
Pas très inspiré...
Posté le 11-01-2011 à 11:50:29  profilanswer
 

Bonjour,
 
Je souhaiterai déclarer une classe (abstraite) dont toutes les filles devraient implémenter des méthodes (voire attributs) qui seraient static. Le but est de forcer les filles a redéfinir ces méthodes/attributs.
Exemple de ce que je voudrais (code non fonctionnel) :
Classe mère qui "déclare" les méthodes/attributs à redéfinir :

Code :
  1. public abstract class ClasseMere {
  2. public static final String val; // à redéfinir d'une manière static
  3. public static abstract String myComment(String param); // à redéfinir d'une manière static
  4. public abstract String formatData(); // à redéfinir non statiquement
  5. }


Première classe fille qui redéfinit les méthodes/attributs :

Code :
  1. public class ClasseFille1 {
  2. public static final String val = "F1"; // attribut static redéfini
  3. // attributs de ma classe
  4. public ClasseFille1(...) {
  5.  // création d'une instance
  6. }
  7. public static String myComment(String param) { // méthode static redéfinie
  8.  // code spécifique
  9. }
  10. public String formatData() {
  11.  // traitement spécifique
  12. }
  13. }


Deuxième classe fille qui redéfinit les méthodes/attributs :

Code :
  1. public class ClasseFille2 {
  2. public static final String val = "F2"; // attribut static redéfini
  3. // attributs de ma classe
  4. public ClasseFille2(...) {
  5.  // création d'une instance
  6. }
  7. public static String myComment(String param) { // méthode static redéfinie
  8.  // code spécifique
  9. }
  10. public String formatData() {
  11.  // traitement spécifique
  12. }
  13. }


Merci d'avance pour votre aide :)

mood
Publicité
Posté le 11-01-2011 à 11:50:29  profilanswer
 

n°2048193
Bidem
Posté le 11-01-2011 à 16:44:53  profilanswer
 

Le principe d'héritage ne s'applique pas aux éléments static (et donc pas de mécanisme d'abstract).
 
Même si tu peux définir des méthodes static ayant la même signature dans 2 classes ayant un héritage, ces 2 méthodes n'ont aucun lien.
 
Ci-dessous un petit exemple pour montrer à quel point c'est dangereux.
 

Code :
  1. public class Mere {
  2.   public static void toto() {
  3.     System.out.println("Mere:toto()" );
  4.   }
  5. }


 

Code :
  1. public class Fille extends Mere {
  2.   public static void toto() {
  3.     System.out.println("Fille:toto()" );
  4.   }
  5.   public static final void main(String[] args) {
  6.     Fille fille = new Fille();
  7.     fille.toto();
  8.     Mere mere = fille;
  9.     mere.toto();
  10.   }
  11. }


Résultat :

Code :
  1. Fille:toto()
  2. Mere:toto()


...
 
Donc pour appeler la méthode toto de Fille il faudrait caster l'objet en Fille.
 
Je ne sais pas si ça a voir avec ce que tu veux faire mais pour moi utiliser le même nom de méthode static dans 2 classes = dangereux + inutile

n°2048531
electricbl​ue
Pas très inspiré...
Posté le 12-01-2011 à 19:34:10  profilanswer
 

Merci pour ce retour :)
Je comprends bien ton exemple, mais je ne fait jamais appel à des méthodes static depuis une instance d'une classe, donc pas de problème à ce niveau là : je sais exactement quelle classe fille je dois appeler et quand.
Mon seul souci est de forcer un "template" pour toutes les classes filles.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Forcer les classes filles à avoir des méthodes/attributs static

 

Sujets relatifs
question sur staticVariables de classes héritées
Forcer le port source en TCP/IP client[JAVA] Probleme de generation de classes avec PowerAMC
[XML] récuperer le nom du noeud et ses attributs par DOM ?initialisation static
[Static Control] NOWORDWRAP[VBA] Forcer un Debug incohérent
IDE avec descriptions des methodes 
Plus de sujets relatifs à : Forcer les classes filles à avoir des méthodes/attributs static


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR