【发布时间】:2015-09-14 17:56:59
【问题描述】:
我问了一个问题,但是很脏,很多人不明白。所以,我需要声明一个最终的静态字段,它只会在子类中初始化。我举个例子:
public class Job {
public static final String NAME;
}
public class Medic extends Job {
static {
NAME = "Medic";
}
}
public class Gardener extends Job {
static {
NAME = "Gardener";
}
}
类似的东西。我知道这段代码行不通,因为 Job 类中的 NAME 字段需要初始化。我想要做的是在每个子类(Medic、Gardener)中单独初始化该字段。
【问题讨论】:
-
static final在这里没有多大意义。只需创建一个实例变量。 -
为什么不创建创建抽象静态方法
getName()? -
@Crozin 抽象静态方法?不可能:stackoverflow.com/a/370967/1743880
-
我不想创建实例变量,因为我不想为了获得最终字段而创建新实例。我也不想创建方法,因为我想在不定义新方法的情况下找到解决方案。
-
@Ricjssubtil 你能举例说明你想如何访问最终字段吗?