子类初始化顺序

文章讨论了在Java编程中,子类对象创建时如何调用父类构造方法初始化属性,强调即使使用了父类构造,实际创建的是子类对象,父类的静态成员和普通成员在子类对象中占有独立空间。RednaxelaFX的观点指出,子类实例包含了基类声明的所有字段,但不是完整父类实例,super()用于父类字段的初始化。
摘要由CSDN通过智能技术生成

先说结论:

1. 父类中静态成员变量和静态代码块

2. 子类中静态成员变量和静态代码块

3. 父类中普通成员变量和代码块,父类的构造函数

4. 子类中普通成员变量和代码块,子类的构造函数

只创建了子类对象, 并调用父类构造方法初始化了一些必要的属性, 并没有创建父类对象, this只指向子类对象.

调用了父类构造方法, 并不意味着就创建了父类对象.

有自己独立空间的才是一个对象, 此时父类初始化的属性都在子类对象所属的空间里面, 所以并没有创建出父类对象.

RednaxelaFX:
"一个子类对象的实例会包含其所有基类所声明的字段,外加自己新声明的字段。那些父类声明的字段并不构成一个完整的父类的实例。super()是让父类封装对自己所声明的字段做初始化的手段。"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值