Enums cannot extend any other class, since all enumerations automatically extend the class named Enum . Thus, your only option is to delegate the implementation of methods for a separate utility. This can make a difference if the implementation is not trivial (more than one line). Otherwise, delegation does not give you serious advantages.
Another possibility is to manually expand Enum, but I'm ready to write detailed code like valueOf() , values() , etc., so I'm not sure if you really need it.
EDIT:
Take a look at my article on Hierarchical Enumerations . Perhaps this will help you too.
Alexr
source share