Наследование статических полей java
Есть класс
public abstract class SuperClass {
static String name = "Not initialized";
public static void load(String Name) {
name = Name;
}
public static String getName() {
return name;
}
...
}
И его наследники
public abstract class First extends SuperClass{}
public abstract class Second extends SuperClass{}
При выполнении First.load("first"); в First.getName() получим "first", но если после выполнить Second.load("second");, то в в First.getName() получим уже "second".
Т.е. статические поля для наследников общие. Есть ли возможность их как-то разделить? Поскольку поле name используется и в суперклассе и в наследниках, то я не могу просто объявить его только в наследниках или в двух местах одновременно, так как функция load изменит только поле суперкласса.