package effectivejava;import java.util.ArrayList;import java.util.List;publicclassPerson{publicPerson(){
name ="Tom";
System.out.println("父类构造函数 name is "+name +" "+this.toString()+" "+this.getClass().getName());}private String name ;//初始化块{
name ="Jack";
System.out.println("父类初始化块 name is "+name +" "+this.toString());}//初始化常量数组privatefinalstatic List<String> titles;static//静态区初始化{
titles =newArrayList<String>();
titles.add("Junior");
titles.add("Senior");
titles.add("Expert");
System.out.println("父类静态初始化块 titles is "+titles);}protectedvoidsayHelloTo(String name){
System.out.println("父类方法 hello "+name+" "+this.toString());}}
子类:
package effectivejava;publicclassStudentextendsPerson{privatestaticfinal String teacher;publicStudent(){
className ="Class 1A";
System.out.println("子类构造函数 class name is "+className+" "+this.toString()+" "+this.getClass().getName());}private String className;{
className ="一(2)班";
System.out.println("子类初始化块 class name is "+className+" "+this.toString());}static{
teacher ="Chinese Teacher";
System.out.println("子类静态初始化块 teacher name is "+teacher);}protectedvoidsayHelloTo(String name){
System.out.println("子类方法 say hello "+name+" "+this.toString());}publicstaticvoidmain(String[] args){// TODO Auto-generated method stub
Student o =newStudent();
o.sayHelloTo("Jack Li");//o = new Student();}}
运行结果:
父类静态初始化块 titles is [Junior, Senior, Expert]
子类静态初始化块 teacher name is Chinese Teacher
父类初始化块 name is Jack effectivejava.Student@33909752
父类构造函数 name is Tom effectivejava.Student@33909752 effectivejava.Student
子类初始化块 classname is 一(2)班 effectivejava.Student@33909752
子类构造函数 classname is Class 1A effectivejava.Student@33909752 effectivejava.Student
子类方法 say hello Jack Li effectivejava.Student@33909752