强制子类在抽象java类中包含常量

pha*_*joe 11 java inheritance constants

我有一个抽象类,我希望所有子类根据实现定义一个常量 - 它主要是关于类实现的元数据.

在超类中:

protected static final String OBJECT_NAME;
protected static final String OBJECT_DEF;
Run Code Online (Sandbox Code Playgroud)

然后在子类中:

protected static final String OBJECT_NAME = "awesome class";
protected static final String OBJECT_DEF = "an awesome class that is also great";
Run Code Online (Sandbox Code Playgroud)

有没有办法强制类的实现声明一个常量?

Pet*_*rey 10

您可以强制子类定义一个方法,该方法可以是该类的常量.

protected abstract String objectName();
protected abstract String objectDef();
Run Code Online (Sandbox Code Playgroud)

注意:如果您有子类的子类,这些可能会"忘记"覆盖这些方法.

  • 你能得到的最好的.由于OP不能完全按照自己的意愿行事,这无疑是最好的方法. (2认同)