我明白了 private 是可以的, 虽然子类看不到,但private field 确实已经创建了。
创建子类时,父类的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; }}
public void aaa(){ System.out.println(sa.toString()); } 执行了。 证明private final Object sa 以被创建。
因为原文是private
虽然子类看不到,但private field 确实已经创建了。
------------------------父类
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;
}}
System.out.println(sa.toString());
}
执行了。
证明private final Object sa 以被创建。