我想在牛奶类中设置名称和代码静态属性。 为什么这不起作用? 我什至无法覆盖名称和代码的 setter/getter。
public abstract class Cow {
private static String name;
private static String code;
...
public static String getName() {
return name;
}
public static void setName(String name) {
Cow.name = name;
}
public static String getCode() {
return code;
}
public static void setCode(String code) {
Cow.code = code;
}
...
}
public class Milk extends Cow{
...
static {
Milk.setName("asdmilk");
Milk.setCode("KDDFA");
}
..
}
最佳答案
Why doesn't this work?
您不会为 Cow
的每个子类获得一组静态变量,并且您根本无法覆盖静态方法。基本上,静态成员不是多态的。
不清楚为什么您要尝试这样做,但基本上如果您声明一个静态变量,那么就有一个变量,句号。在这里调用 Milk.setName
完全等同于调用 Cow.setName
。
关于抽象类中的 Java 静态属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12823858/