可能重复:
Java enum inheritance
我正在使用一个具有枚举类型的库,这个类型非常适合我的用途,但这个名字太可怕而且令人困惑。我可以简单地继承这个枚举来创建一个更好的名字吗?
public enum Settings extends JiggidyWapperfragNautchFrick.SkiddidyBoomCaFriglets {
}
像这样?当我尝试这样做时,IntelliJ抱怨,但是什么是获得我提议的效果的适当方法?
答案 0 :(得分:4)
不,你不能扩展enum
类。
唯一(轻微)异常是枚举值可以具有特定于值的类主体,这有效地创建了一个扩展原始enum
类的单独类。
答案 1 :(得分:3)
枚举是最终类,因此您不能对它们进行子类化。我建议将它包装在另一个名称很好的类中。
也许是这样的。通过拥有私人ctor,你无法实例化它。
public class Nice {
private Nice(){}
public static badNamedEnum one(){
return badNamedEnum.badNamedOne;
}
public static badNamedEnum two(){
return badNamedEnum.badNamedTwo;
}
}
答案 2 :(得分:0)
Joachim是对的,但是enum可以implement
一个界面。
答案 3 :(得分:0)
枚举用于“硬编码”交换机和其他测试。允许子类化没有任何意义,并且会破坏目的,因为这将允许对可能的值进行不确定性。