new 一个子类的时候的访问顺序:
class Creature {
    {
        System .out. println("creature 的非静态初始化 ");
    }
    public Creature () {
         super();
        System .out. println("creature 的构造方法 ");
    }
}
class Animal extends Creature {
    {
        System .out. println("animal 的非静态初始化 ");
    }
    public Animal () {
         super();
        System .out. println("animal 的构造方法 ");
    }
}
public class Monkey extends Animal {
    {
        System .out. println("monkey 的非静态初始化 ");
    }
    public Monkey () {
         super();
        System .out. println("monkey 的构造方法 ");
    }
    public static void main (String[] args) {
         new Monkey();
    }
}
输出结果:
非静态初始化块的执行总是先于构造器执行的
super(Para p1,Para p2......); 根据参数调用父类对应的构造方法
this(Para p1,Para p2......);  根据参数调用本类对应的构造方法
对于一个无参的构造器,会有一个默认的super(),她会调用父类的无参的构造方法