Можно создать дубликат:
add values to enumJava перечисление наследование
Почему перечисления в Java не может наследовать от других перечислений? Почему это реализовано таким образом?
Можно создать дубликат:
add values to enumJava перечисление наследование
Почему перечисления в Java не может наследовать от других перечислений? Почему это реализовано таким образом?
Поскольку добавление элементов в перечисление бы эффективно создать супер класс, а не к югу от класса.
Рассмотрим:
enum First {One, Two}
enum Second extends First {Three, Four}
First a = Second.Four; // clearly illegal
Second a = First.One; // should work
Это обратная сторона, как она работает с регулярными классами. Я предполагаю, что может быть реализован именно так, но это было бы сложнее реализовать , чем казалось бы, и это было бы , конечно, путайте людей.
Возможно, что вы хотите Первых орудий MyInterface Второго инвентаря MyInterface Затем используйте MyInterface для объединения двух групп – user1176505
сначала а = Second.One быть незаконным заявление? –
@TimothySwan Указанный код не будет скомпилирован, поскольку исключение будет выбрано в строке 'enum Second extends First {Three, Four}'. –
http://stackoverflow.com/questions/55375/add-values-to-enum –
Я бы перефразировал вопрос. Почему перечисления не могут иметь абстрактную базу? Принятый ответ на вопрос, цитируемый Биллом, объясняет, почему вы не можете расширять перечисления с другими значениями, но мне все еще не ясно, почему они не могут использовать базовую реализацию. –