定数なしenumに抽象メソッド

定数なしenumに抽象メソッドを宣言するとコンパイルが通らなくなる。
どうやら抽象メソッドを宣言するだけではenumは抽象クラスにならないらしい。

package test;

import java.lang.reflect.Modifier;

public class EnumAbstractTest {

    private enum E1 {
        // 定数
        A1 {

            @Override
            void hoge() {
                System.out.println("hoge");
            }
            
        },
        ;
        // 抽象メソッド
        abstract void hoge();
    }
    
    private enum E2 {
        // 定数なし
        ;
        // 具象メソッド
        public void hoge() {
            System.out.println("hoge2");
        }
    }
    
    private enum E3 {
        // 定数なし
        ;
        // 抽象メソッド コンパイルエラー
//        abstract void hoge();
    }
    
    public static void main(final String[] args) {
        // private abstract static
        System.out.println(Modifier.toString(E1.class.getModifiers()));
        // private static final
        System.out.println(Modifier.toString(E2.class.getModifiers()));
    }
    
}

Eclipseだとこんなエラーが出る。

The enum EnumAbstractTest.E3 can only define the abstract method hoge() if it also defines enum constants with corresponding implementations

(9/10追記) Oracleコンパイラだとこんなエラーが出る。(日本語)

E3はabstractでなく、E3内のabstractメソッドhoge()をオーバーライドしません