我已经定义了自己的enum,它将扩展Java enum class。Java枚举类扩展Java对象类吗?
enum ORDER {
FIRST,
SECOND,
THIRD,
FOURTH
}
是的,在java中任何非null都是Object实例的引用。换句话说
aRef instanceof Object
是true
,除非aRef
是null
,无论aRef
类型是enum
或常规类
实际上,enum
关键字定义了一个类(称为enum类型)。枚举类主体可以包含方法和其他字段。编译器在创建枚举时自动添加一些特殊的方法。https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html
因此,枚举类型的引用具有与其他"常规"类型相同的基本属性。对象。
因此,你可以这样调用:
ORDER obj = ORDER.FIRST;
System.out.println(obj.hashCode());
System.out.println(obj.equals(otherObj));
的方法与使用非enum类的对象相同。
是。一个简单的单元测试可以证明你的例子中的类层次结构是ORDER ->java.lang.Enum→java . lang . object:
public class EnumTest {
enum ORDER {
FIRST,
SECOND,
THIRD,
FOURTH
}
@Test
public void test() {
System.out.println(ORDER.class.getSuperclass().getSuperclass());
}
}
返回
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running de.interassurance.service.EnumTest
class java.lang.Object
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.017 s - in de.interassurance.service.EnumTest
Results:
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0