Enum继承解释不清楚?

Enum inheritance explanation is not clear?

所以根据 java docs

All enums implicitly extend java.lang.Enum. Because a class can only extend one parent, the Java language does not support multiple inheritance of state, and therefore an enum cannot extend anything else.

但是在java中我们还知道:-

All classes in Java extend java.lang.Object class implicitly

但是我们显然可以在java中扩展类。由于我们扩展的 class 本身是从 Object 扩展的(因此它不会导致多重继承,或者将其声明为:- 如果您不扩展任何其他 class 从 [=10 扩展=] else extend from class XYZ extend from Object)

对于枚举不能扩展其他 classes/enums 等这一事实,java 文档的解释是否不正确?

我是不是漏掉了一些愚蠢的观点?

它只是意味着不能让你的枚举扩展任何东西,除了隐式扩展Enum

当它说Java不允许扩展多个class时,这意味着你不能

.--------.   .----------.
| Enum   |   | YourBase |
'--------'   '----------'
     ^            ^
      \          /
        \       /
       .----------.
       | YourEnum |
       '----------'

另一方面,这完全没问题:

.--------.
| Object |
'--------'
     ^
     |
.--------.
|  Enum  |
'--------'
     ^
     |
.----------.
| YourEnum |
'----------'

当文档说

All classes in Java extend java.lang.Object class implicitly

它只是意味着每个 class 要么直接扩展 Object,要么通过它的超类间接扩展 Object class。

运行这个代码,你会得到答案:

System.out.println(MyEnum.class.getSuperclass());
System.out.println(MyEnum.class.getSuperclass().getSuperclass());

public enum MyEnum  {   
}

输出:

class java.lang.Enum
class java.lang.Object

最重要的是,考虑 Java 中不允许多重继承。 IE。 MyEnum 已经扩展了 EnumEnum 已经扩展了 Object。此链中没有任何其他扩展的空间。