极好的(); 调用父类的空参构造函数
在编译时,jvm会读取每个类,然后创建一个init初始化方法,
init方法包含了你通过编译编写的类中的代码
按一定顺序
在里面(){
1.super();//这个还是必须的,它是在你的构造函数中编译super得到的,因为每个类都会有它,你就是this(); 它是这个(); 你有参数,他也有参数。 无论如何,它与您的构造函数中的相同。 如果你有很多构造函数,你将创建多个 init 方法。 每个方法的第一句是super()或this()。 或带参数
2.静态的东西和属性我就不多说了,所以在、代码块、非静态、构造函数的执行顺序中,静态的东西会先执行
3.非静态属性
4.代码块,和上面一样,反正编译的时候它会识别你类里的东西,给你安排顺序。 代码块在下面
5.构造函数中的代码 //这个不是访问顺序的问题,构造函数在最后,我的理解是构造函数早就编译好了,第一行的super就可以体现出来了,这里只是把自己在构造函数中写的代码放在第五个地方。 比如你在构造函数中给non-赋值,早在第四步,non-就会有一个默认值,0或者null,你在构造函数中赋值,它就会变成您分配的号码
}
所以子类需要调用父类构造函数,jvm编译识别构造函数,然后使用init——就变成了加载、代码块、非静态、构造函数