Enum в Java // Демо-занятие курса «Специализация Java-разработчик»
Java 82. Может ли Enum расширить (extends) класс?
В Java Enum не может расширять (extends) классы, так как Enum уже является конечной реализацией класса. В Java каждый Enum наследуется от класса java.lang.Enum, который уже содержит реализацию методов, свойств и функциональности, необходимых для работы перечислений. Также если мы попытаемся объявить перечисление, которое наследует другой класс, то компилятор выдаст ошибку. Например: public class MyClass {
// some code }
public enum MyEnum extends MyClass { // ОШИБКА КОМПИЛЯЦИИ!...
enum в Java: очевидное - невероятное
Всем привет! Хочу рассказать про ряд неочевидных особенностей enum в Java. Поехали! 1) enum - это полноценный класс, у него могут быть поля, методы, обычные и статические 2) любой enum неявно (!) расширяет абстрактный класс Enum, поэтому наследовать enum от кого-то другого нельзя. Например, один enum от другого. При этом добавить final для enum нельзя, т.к. он уже фактически final) 3) зато enum может реализовывать интерфейсы, как и любой другой класс в Java 4) самое интересное - каждое значение enum является наследником самого enum. Т.е. можно объявить метод show в enum Direction и переопределить его Direction...