1、类初始化过程:子类初始化先初始化父类,一个类初始化就是执行<clinit>,<clinit>()方法由静态类变量显示赋值代码和静态代码块组成,类变量显示赋值代码和静态代码块代码从上到下顺序执行 <clinit>()方法只执行一次。
2、实例初始化就是执行<init>()方法 <init>()方法可能重载有多个,有几个构造器就有几个<init>方法 <init>()方法由非静态实例变量显示赋值代码和非静态代码块、对应构造器代码组成 非静态实例变量显示赋值代码和非静态代码块代码从上到下顺序执行,而对应构造器的代码最后执行 每次创建实例对象,调用对应构造器,执行的就是对应的<init>方法 <init>方法的首行是super()或super(实参列表),即对应父类的<init>方法
3、final方法 静态方法 private等子类中不可见方法不能被重写。重写后先执行子类方法。