A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

         在字父类的初始化中,父类的静态成员显示初始化,非静态成员的默认初始化,非静态成员的构造方法初始化,父类的静态成员显示初始化,非静态成员的默认初始化,非静态成员的构造方法初始化,这六个初始化的顺序是怎样的?一直没弄明白

3 个回复

倒序浏览
我只能说是一个牛逼的问题,想的很深刻,但是好像就3个吧,后面的应该的是子类的吧。
首先,基本顺序是默认初始化,显示初始化,构造方法初始化;
其次,静态成员的空间是随着类的加载就分配的了;
所以拿父类举例,顺序是:父类的静态成员显示初始化,非静态成员的默认初始化,非静态成员的构造方法初始化。

点评

单独的父类成员初始化顺序很明确,但是现在涉及到子类与父类中,把这六个放在一起排序,想再请教一下  发表于 2016-9-18 22:28
回复 使用道具 举报
ts5210ts 发表于 2016-9-18 00:14
我只能说是一个牛逼的问题,想的很深刻,但是好像就3个吧,后面的应该的是子类的吧。
首先,基本顺序是默认 ...

我们还没学太深刻。
我的理解的顺序是这样的:
父类的静态成员初始化,子类的静态成员初始化,父类的非静态成员默认初始化,父类的非静态成员显示初始化,父类的非静态成员构造初始化,子类的非静态成员默认初始化,子类的非静态成员显示初始化,子类的非静态成员构造初始化,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马