更糟糕的是, 它会导致初级用户把字符串常量硬编码到客户端代码中, 而不是使用适当的field....如果这样的硬编码字符串常量中包含书写错误, 编译时不会检测到, 在运行时会报错.Java1.5开始提供了枚举类型.枚举类型: 实例受控, 是单例的泛型化, 本质上是单元素的枚举.枚举类型提供的优点:编译时的类型安全....多个枚举类型可包含同名常量.增加或重新排列枚举类型中的常量, 无需重新编译它的客户端代码.toString()方法将枚举转化成可打印的字符串.允许添加任意的方法和域, 并实现任意的接口....(一维和多维的例子.)第38条 用接口模拟可扩展的枚举Java语言上是不支持枚举继承的, 这并不意外, 因为枚举的扩展最后证明都不是什么好点子....注解.如果不写IDE会有警告.如果是实现抽象方法, 不写@Override注解IDE不会警告, 但是这样做没什么坏处.第41条 用标记接口定义类型标记接口(marker interface)是没有包含方法声明的接口