cout << *arr << '\n';
cout << *&arr << '\n';
Это не так. Константы - это конкретные инстансы вашего enum класса, а не инстансы анонимных наследников от него.
enum E {
ONE{
void meth() {
System.out.println("Реализация метода суперкласса E");
}
},
TWO{
void meth() {
System.out.prinln("Вторая реализация");
}
};
abstract void meth();
}
public static final E ONE = new E(){
//реализация
}