Java枚举类默认是否会扩展Java对象类?

发布于 2025-02-05 17:59:08 字数 142 浏览 1 评论 0 原文

我已经定义了自己的枚举,这将扩展Java Enum类。 Java Enum类是否扩展Java对象类?

enum ORDER {
    FIRST,
    SECOND,
    THIRD,
    FOURTH
}

I have defined my own enum, which will extend Java Enum Class. Does Java Enum Class extend Java Object Class?

enum ORDER {
    FIRST,
    SECOND,
    THIRD,
    FOURTH
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

血之狂魔 2025-02-12 17:59:08

是的,在Java中,任何非编号都是对象实例的参考。换句话说

aRef instanceof Object 

true ,除非 AREF 是 null 不管 AREF 类型是 enum 或普通课程。

确实, enum 关键字“定义了类(称为枚举类型)。枚举类主体可以包括方法和其他字段。编译器在创建枚举时会自动添加一些特殊的方法。”

因此,枚举类型的引用具有与其他“常规”对象相同的基本属性。

进行呼叫。

ORDER obj = ORDER.FIRST;
System.out.println(obj.hashCode());
System.out.println(obj.equals(otherObj));

因此,您可以以与使用非Enum类的对象相同的方式

Yes, in java any non-null is a reference for an instance of Object. In other words

aRef instanceof Object 

is true unless aRef is null regardless aRef type is an enum or a regular class.

Indeed, the enum keyword "defines a class (called an enum type). The enum class body can include methods and other fields. The compiler automatically adds some special methods when it creates an enum." https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html

Thus, references for enum types have the same elementary properties as other "regular" objects.

Thus, you can make calls like:

ORDER obj = ORDER.FIRST;
System.out.println(obj.hashCode());
System.out.println(obj.equals(otherObj));

in the same way as using an object of a non-enum class.

为你拒绝所有暧昧 2025-02-12 17:59:08

是的。一个简单的单元测试可以证明您的示例类层次结构是顺序 - > 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

Yes. A simple unit test can prove that the class hierarchy in your example is 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());


    }

}

This will return

-------------------------------------------------------
 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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文