我可以在Java中创建抽象枚举吗? [英] Can I make an abstract enum in Java?
本文介绍了我可以在Java中创建抽象枚举吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
以下是一个有效的枚举声明。
Below is a valid enum declaration.
public enum SomeEnumClass {
ONE(1), TWO(2), THREE(3);
private int someInt;
public SomeEnumClass(int someInt) {
this.someInt = someInt;
}
}
但是我可以用一个枚举类型覆盖一个抽象类?
But can I override an abstract class with an enum type?
SomeEnumClass.java
public abstract enum SomeEnumClass {
private int someInt;
public SomeEnumClass(int someInt) {
this.someInt = someInt;
}
}
覆盖EnumClass.java / p>
OverridingEnumClass.java
public enum OverridingEnumClass extends SomeEnumClass {
ONE(1), TWO(2), THREE(3);
}
如果没有,为什么不?什么是好的选择?
If not, why not? And what is a good alternative?
推荐答案
不,你不能;枚举类型都延伸到枚举
,它们隐含地 final
。枚举可以实现接口,或者你可以直接在有关的枚举类上声明相关的方法。
No, you can't; enum types all extend Enum
, and they're implicitly final
. Enums can implement interfaces, or you can declare the relevant methods directly on the enum class in question.
(我看到你想要的基本想法, mixin;也许Java 8接口在这方面会更有用。)
(I do see the basic idea of what you want, which is a mixin; perhaps the Java 8 interfaces will be a bit more useful in this regard.)
这篇关于我可以在Java中创建抽象枚举吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文