这是我想要完成的,我有一个类具有一些值的枚举,我想继承它并为枚举添加更多的值.这是一个不好的例子,但是:
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
}
}
Run Code Online (Sandbox Code Playgroud)
这样HexDigits.Digit包含所有十六进制数字.那可能吗?
cle*_*tus 35
不,这是不可能的.您可以做的最好的事情是制作两个枚举器和接口,然后使用该接口而不是枚举.所以:
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;
}
}
Run Code Online (Sandbox Code Playgroud)