Как правило, так как мы работаем в Java и обычно запрещаем OO design, вы можете получить эту функциональность через расширение.Однако перечисления расширяют java.lang.Enum неявно, и поэтому не может расширять другой класс.
Это означает, что расширяемость для перечислений в большинстве случаев происходит из другого источника.
Джошуа Блох добавляет это в Effective Java: Second Edition в пункте 34, когда он представляет шаблон общего интерфейса для перечислений.Вот его пример шаблона:
public interface Operation {
double apply(double x, double y);
}
public enum BasicOperation implements Operation {
PLUS("+") {
public double apply(double x, double y) { return x + y; }
},
MINUS("-") {
public double apply(double x, double y) { return x - y; }
},
TIMES("*") {
public double apply(double x, double y) { return x * y; }
},
DIVIDE("/") {
public double apply(double x, double y) { return x / y; }
}
Это примерно как можно ближе к общему состоянию, когда дело доходит до перечислений.Как сказал выше Йохан Шёберг, было бы проще всего объединить перечисления в другое перечисление.
Удачи!