你说的有道理,可以把private 改成protect。

解决方案 »

  1.   

    你的意思是作者有误马?
    因为原文是private
      

  2.   

    我明白了 private 是可以的,
    虽然子类看不到,但private field 确实已经创建了。
      

  3.   

    创建子类时,父类的private都会被创建出来。
    ------------------------父类
    public class test1 {
      private  final Object sa= new Object(){
        protected void finalize(){
          System.out.println("assas");
           }
        };  public test1() {
      }  public void aaa(){
        System.out.println(sa.toString());
      }
      public static void main(String[] args) {
        test1 test11 = new test1();
      }
    }----------------------------------子类
    public class test2 extends test1 {
      public test2() {
      }
      public static void main(String[] args) {
        test2 test21 = new test2();
        test21.aaa();
        test21=null;
      }}
      

  4.   

    public void aaa(){
        System.out.println(sa.toString());
      }
    执行了。
    证明private  final Object sa 以被创建。