J'ai quelques sous-classes avec des variables statiques uniques dans ce cas appelé 'x'. Toutes ces sous-classes utilisent la variable statique de la même manière, donc je veux réduire la duplication de code et mettre la fonctionnalité dans la super classe. Dans ce cas, la méthode 'getX' dans la super classe. De là, je veux retourner la valeur de x. En ce moment je suis confronté au problème qu'il utilise la valeur x de la super classe et non la valeur de la classe enfant. Comment puis-je accéder à la valeur x de la sous-classe de la super classe?Java | vars statiques dans la classe parent et enfant | accéder à la valeur var de l'enfant de la classe parent
public class Playground {
public static void main(String[] args) {
Parent parent = new Parent();
Child child = new Child();
Child1 child1 = new Child1();
System.out.println("Parent.x " + parent.x);
System.out.println("child.x " + child.x);
System.out.println("child.x " + child1.x);
System.out.println("get x: " + parent.getX());
System.out.println("get x: " + child.getX());
}
}
class Parent {
static String x = "static of parent";
String y = "instance of parent";
String getX() {
return x;
}
}
class Child extends Parent {
static String x = "static of child";
String y = "instance of child";
}
class Child1 extends Parent {
static String x = "static of child1";
String y = "instance of child";
}
Ce code imprime: Parent.x static of parent child.x static of child child.x static of child1 get x: static of parent get x: static of parent
< - ici devrait être statique de l'enfant
quelqu'un Hope peut me aider.
À votre santé
Dans mon vrai scénario que j'ai 6 sous-classes, donc je ne veux pas copier getX qui sont 3-4 méthodes (dans le scénario réel) dans tous les sous classes –
Mais lorsque vous appelez la méthode getX, java appelle celle de Parent. C'est pourquoi vous obtenez le x du parent. Je pense que c'est le seul moyen d'obtenir le résultat attendu. –