我可以在Java中创建抽象枚举吗? [英] Can I make an abstract enum in Java?

查看:111
本文介绍了我可以在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆