java类初始化、实例初始化过程

类初始化:

* 类会在以下情况初始化:创建实例、该类中main方法被加载。

* 类初始化会调用<clinit>方法,该方法首先加载静态变量和静态代码块,按顺序执行。

*类初始化的时候有父类会先初始化父类在初始化子类,有父亲才有儿子。

*<clinit>方法只执行一次。

实例初始化:

*调用new方法开始实例初始化

*实例初始化调用<init>方法,有几个构造器方法就会有几个<init>方法

*<init>方法执行内容:非静态变量和非静态代码块 按顺序执行,然后执行构造器方法

*<init>方法首行是super()方法,即先执行父类的非静态变量和非静态代码块,然后是父类的构造器方法

注意:注意方法的重写,非静态方法,调用前默认有一个this ,this指的是当前创建的对象,所以创建子类实例的时候<init>方法中首行执行super()方法,调用非静态方法,如果方法被子类重写了,实际调用的是子类重写后的方法。

例题代码如图:

 

 

运行结果为:

(5)(1)(10)(6)(9)(3)(2)(9)(8)(7)

(9)(3)(2)(9)(8)(7)

 

posted @ 2020-12-16 15:40  mxn0829  阅读(94)  评论(0)    收藏  举报