java - Enum继承解释不清楚?

标签 java enums

所以根据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中扩展类。由于我们扩展的类本身是从 Object 扩展的(因此它不会导致多重继承,或者将其声明为:- 如果您不扩展任何其他类,则从 Object 扩展else 从 XYZ 类扩展,而 XYZ 又从 Object 扩展)

由于枚举无法扩展其他类/枚举等,java 文档的解释是否不正确?

我错过了一些愚蠢的观点吗?

最佳答案

这只是意味着不能让您的枚举扩展除隐式扩展的Enum之外的任何其他内容。

当它说 Java 不允许扩展多个类时,这意味着您不能拥有

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

另一方面,这是完全可以的:

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

当文档说

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

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

关于java - Enum继承解释不清楚?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29253096/

相关文章:

enums - Dart2JS 和枚举器

c# - 在 C# 中使用枚举作为状态返回状态指示器

java - 如何将来自网站的 JSON 对象解析为 android 中的数组列表

java - 将二叉树存储在数组中

java - 如何为在 JTextPane 上的单独 JFrame 上打开的文件设置 UTF-8 编码

java - 删除标题栏时出错

java - 如何同时掷 2 个骰子并记录其总和

java - 在枚举内部搜索

c++ - 枚举和函数

java - 如何从类型为 map 的数据库中检索值