Java 类的初始化顺序

一、Java 类的初始化顺序

1、父类的静态代码块

2、子类的静态代码块

3、父类非静态代码块

4、父类构造函数

5、子类非静态代码块

6、子类构造函数


(1)由于入口main方法也是静态方法,所以可以看出来,静态方法执行前会执行本类以及父类的静态代码块,但是不一定执行构造函数和非静态代码块,因为只有通过new或者Class的newInstance方法才会调用构造函数。

(2)子类的构造方法,不管这个构造方法带不带参数,默认的它都会先去寻找父类的不带参数的构造方法。如果父类没有不带参数的构造方法,那么子类必须用supper关键子来调用父类带参数的构造方法,否则编译不能通过。

(3)调用Class类的newInstance方法创建对象时会调用类的不带参数的构造方法,如果类没有不带参数的构造方法则运行时会抛出InstantiationException异常。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值