Java 中枚举和类的异同

不同点

  • 枚举类是一组相关数据的组合
  • 枚举类默认继承了 java.lang.Enum 类,而不是继承 Object 类,不能继承其他类
  • 非抽象枚举类默认使用 final 修饰,不能存在子类
  • 枚举类的构造器只能使用 private 修饰
  • 枚举类的所有实例必须在枚举类的第一行显式列出,否则这个枚举类永远不能产生实例,列出的实例,系统会自动添加 public static final 修饰
  • 枚举类默认带有 values() 方法,该方法可以很方便的遍历所有的枚举值
  • 常量值地址唯一, 可以用 == 直接对比, 性能会有提高

相同点

  • 均可以实现接口