这样可以确保任何使用超类的地方都可以使用子类的实例.实例域很少是公有的.包含公有可变域的类并不是线程安全的.同样的建议也适用于静态域....只有一种例外: 公有静态final域来暴露常量(名称由大写字母单词下划线隔开)....方法行为若不依赖于标签值, 就把方法放在抽象类中.所有方法都用到的数据域放在抽象类中, 特定于某个类型的数据域放在对应的子类中.这个类层次纠正了前面所提到的标签类的所有缺点.第24条 优先考虑静态成员类嵌套类...在任何可以声明局部变量的地方, 都可以声明局部类, 并且局部类也遵守同样的作用域规则.局部类有名字, 可以被重复地使用. 只有当局部类在非静态环境中定义的时候, 才有外围实例...., 就要把它做成匿名类; 否则, 就做成局部类.第25条 限制源文件为单个顶级类虽然Java编译器允许你在一个文件中定义多个顶级类, 但是这样做没什么好处, 并且有风险.风险缘由: 在一个源文件中定义多个顶级类