java的类加载顺序和创建对象时的调用顺序

100 阅读1分钟

java的类加载顺序和创建对象时的调用顺序

类的加载顺序

有父子关系的类在加载时
先调用父类静态初始化块,静态属性,但不包括静态方法,然后再是,子类静态初始化块,静态属性,但同样不包括静态方法 。

创建对象的过程

先是父类非静态初始化块,非静态属性 ,再是父类构造函数,然后是子类非静态初始化块,非静态属性 ,最后是子类构造函数
在这里插入图片描述
运行结果
在这里插入图片描述

注意

(1)子类在继承父类后,若重写了父类的方法,那么父类中这个方法会被隐藏,但是可以通过在构造方法中用super显示调用。
(2)父类的静态方法是不能被继承的
(3)如果父类没有写出默认的无参构造方法但有写出有参的构造方法,那么在子类的构造方法中需显示调用父类的有参构造方法,不然会报错。
在这里插入图片描述

运行结果
在这里插入图片描述