Hériter une variable statique en Java
-
29-09-2019 - |
Question
Je veux avoir la configuration suivante:
abstract class Parent {
public static String ACONSTANT; // I'd use abstract here if it was allowed
// Other stuff follows
}
class Child extends Parent {
public static String ACONSTANT = "some value";
// etc
}
Est-ce possible en java? Comment? Je préfère ne pas utiliser des variables / méthodes exemple, si je peux l'éviter.
Merci!
EDIT:
La constante est le nom d'une table de base de données. Chaque objet enfant est un mini ORM.
La solution
vous ne pouvez pas le faire exactement comme vous le voulez. Peut-être un compromis acceptable serait:
abstract class Parent {
public abstract String getACONSTANT();
}
class Child extends Parent {
public static final String ACONSTANT = "some value";
public String getACONSTANT() { return ACONSTANT; }
}
Autres conseils
Dans ce cas, vous devez vous rappeler est en Java, vous ne pouvez pas overried méthodes statiques. Ce qui est arrivé est-il de cacher les choses.
selon le code que vous avez mis si vous faites les choses suivantes réponse sera nulle
Parent.ACONSTANT == null ; ==> true
Parent p = new Parent(); p.ACONSTANT == null ; ==> true
Parent c = new Child(); c.ACONSTANT == null ; ==> true
tant que vous utilisez Parent comme ACONSTANT type de référence sera nulle.
nous allons vous faire quelque chose comme ça.
Child c = new Child();
c.ACONSTANT = "Hi";
Parent p = c;
System.out.println(p.ACONSTANT);
sortie sera nulle.