为什么Java中的枚举不能从其他枚举继承?为什么以这种方式实施?
例子
因为将元素添加到枚举将有效地创建超类,而不是子类。
考虑:
enum First {One, Two}
enum Second extends First {Three, Four}
First a = Second.Four; // clearly illegal
Second a = First.One; // should work
这与常规类的工作方式相反。我想可以以这种方式实施,但实施起来比看起来要复杂得多,而且肯定会使人们感到困惑。
问题内容: 您可以在Swift中继承枚举吗?关于枚举继承,应该注意哪些规则? 以下测试代码: 产生 问题答案: 在Swift语言中,我们有Structs,Enum和Classs。Struct和Enum通过副本传递,而类通过引用传递。只有类支持继承,枚举和结构不支持。 因此,要回答您的问题,您不能继承Enum(和Struct类型)。在这里看看:
你能在Swift中继承枚举吗?关于枚举继承,应该知道哪些规则? 以下测试代码: 产生
主要内容:声明枚举,枚举类,为枚举添加方法,EnumMap 与 EnumSet枚举是一个被命名的整型常数的集合,用于声明一组带标识符的常数。枚举在曰常生活中很常见,例如一个人的性别只能是“男”或者“女”,一周的星期只能是 7 天中的一个等。类似这种当一个变量有几种固定可能的取值时,就可以将它定义为枚举类型。 在 JDK 1.5 之前没有枚举类型,那时候一般用接口常量来替代。而使用 Java 枚举类型 enum 可以更贴近地表示这种常量。 声明枚举 声明枚举时必须使用 enu
问题内容: 我正在编写一个库,该库具有一组预定义的枚举值。可以说,我的枚举如下所示。 现在,使用此库的客户端可能需要添加更多值。假设客户需要添加和。这不会覆盖任何现有值,而是使枚举具有5个值。 在此之后,我应该能够使用5种不变的可能性。 实现此目标的最佳方法是什么? 问题答案: 您不能具有另一个扩展,也不能通过继承将值“添加”到现有值。 但是,可以实现。 我要做的是让原始实现标记(即没有方法声明)
问题内容: 我有一个枚举的类对象(我有一个),我需要获取此枚举表示的枚举值的列表。该静态函数有我需要什么,但我不知道怎么去从类对象访问它。 问题答案: