- 没有父类的情况:
- 实现自身的静态属性和静态代码块.(根据代码出现的顺序执行)
- 实现自身的非静态属性和非静态代码块.
- 执行自身的构造函数
- 有继承类的情况:
- 实现父类的公共静态属性和静态代码块代码
- 实现自身的静态属性和静态属性代码块代码
- 实现父类非静态属性和非静态代码块
- 执行父类的构造函数
- 实现自身的非静态属性和非静态代码块
- 执行自身的构造函数
- 以下代码对第二种情况进行验证:
package test;
/**
*@author xpengfei
*@creat 2:49:53 PM Aug 31, 2017
*/
public class students1 {
public students1(){
System.out.println("students1的构造函数!");
}
{
System.out.println("这是Students1中的一段代码块!");
}
static{
System.out.println("这是students1中的一段静态代码块!");
}
}
students1用作父类,students2继承students1进行验证.
package test;
/**
*@author xpengfei
*@creat 2:51:08 PM Aug 31, 2017
*/
public class students2 extends students1{
public students2(){
System.out.println("students2的构造函数.hello students2!!");
}
{
System.out.println("这是students2中的一段代码块!");
}
static{
System.out.println("这是students2中的一段静态代码块!");
}
public static void main(String[] args) {
students2 s=new students2();
}
}
运行结果:
本文通过两个Java类的实例化过程,详细解析了Java中类加载的顺序,包括父类和子类之间的静态与非静态属性及代码块的执行顺序,并展示了具体的执行结果。
859

被折叠的 条评论
为什么被折叠?



