这就是我想要完成的事情,我有一个包含一些值的枚举的类,我想继承它并向枚举添加更多值。这是一个不好的例子,但是:
public class Digits
{
public enum Digit
{
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
}
}
public class HexDigits extends Digits
{
public enum Digit
{
A, B, C, D, E, F
}
}
这样 HexDigits.Digit 包含所有的十六进制数字。这可能吗?
最佳答案
不,这是不可能的。您能做的最好的事情是让两个枚举实现和接口(interface),然后使用该接口(interface)而不是枚举。所以:
interface Digit {
int getValue();
}
enum Decimal implements Digit {
ZERO, ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE;
private final int value;
Decimal() {
value = ordinal();
}
@Override
public int getValue() {
return value;
}
}
enum Hex implements Digit {
A, B, C, D, E, F;
private final int value;
Hex() {
value = 10 + ordinal();
}
@Override
public int getValue() {
return value;
}
}
关于java - 是否可以扩展 Java 枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2642281/