Java枚举继承[重复]
Posted
技术标签:
【中文标题】Java枚举继承[重复]【英文标题】:Java enum inheritance [duplicate] 【发布时间】:2009-12-10 22:06:44 【问题描述】:可能重复:add values to enum
为什么 Java 中的枚举不能从其他枚举继承?为什么要这样实现?
【问题讨论】:
***.com/questions/55375/add-values-to-enum 我会改写你的问题。为什么枚举不能有抽象基础? Bill 引用的问题的公认答案解释了为什么不能用其他值扩展枚举,但我仍然不清楚为什么它们不能共享基本实现。 【参考方案1】:Example stolen from here
因为向枚举添加元素 将有效地创造一个超级 类,而不是子类。
考虑:
enum First One, Two
enum Second extends First Three, Four
First a = Second.Four; // clearly illegal
Second a = First.One; // should work
这是相反的方式 与常规课程一起使用。我猜 可以这样实现,但它 实现起来会更复杂 比看起来,而且它会 肯定会迷惑人。
【讨论】:
可能你想要的是首先实现 MyInterface 第二个实现 MyInterface 然后使用 MyInterface 来合并两组 First a = Second.One 会是非法声明吗? @TimothySwan 引用的代码不会被编译,因为enum Second extends First Three, Four
行会抛出异常。以上是关于Java枚举继承[重复]的主要内容,如果未能解决你的问题,请参考以下文章