类成员的初始化顺序

★类成员的初始化顺序, 举例 ChildClass从ParentClass继承而来
ChildClass child = new ChildClass();

1.  初始化ChildClass的静态字段(按声明顺序)
2.  初始化ChildClass的静态构造函数
3.  初始化ChildClass的实例字段
4.  调用ChildClass的构造函数,并在此中断, 调用ParentClass的构造函数, 导致ParentClass开始初始化
5.  初始化ParentClass的静态字段
6.  初始化ParentClass的静态构造函数
7.  初始化ParentClass的实例字段
8.  调用ParentClass的实例构造函数
9.  ParentClass初始化完毕, 调用ChildClass的构造函数,完成创建

★如果多重继承,将按上面方式展开,静态构造函数和静态字段都只构造一次.
★如果类没有实例化以前,调用该类的静态方法(字段),会引起类的静态字段实例化, 调用静态构造函数. 以后再实例化此类的时候,不再重新实例化静态字段和静态构造函数
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值