【发布时间】:2022-02-03 06:28:43
【问题描述】:
来自 Stackoverflow 的用户提出了这个问题,遗憾的是没有可以解释情况的答案。
Why enum can't extend another class while all other classes can
我也有同样的问题。 Java还告诉它是multiple extends并且不支持。 Java documentation.
但这部分让我很困惑。如果任何类默认扩展 Object 类(Java 中的 Main 类),并且任何新类都可以扩展另一个类(Object 类除外),但任何新 Enum 不能?为什么?
任何Enum都默认扩展Enum类,对于特殊的enum不能扩展更多的类,如果说是程序的方式,会更容易理解。但是在文档中写不能扩展,因为它是多个类。也许文档不正确?如果有人可以解释这部分,请解释一下。
谢谢!
【问题讨论】:
-
enum基本上是一个编译时构造,它将创建一个扩展java.lang.Enum的类(这是由编译器添加的,因此您在代码中看不到它 - 很像将extends Object添加到不扩展其他任何内容的任何类中)。这就是为什么你不能添加另一个extends。