本文总结一下关于java静态代码块,构造方法,构造代码块的执行先后顺序(父子类)。
在Java中,当创建父类和子类的对象
时,会涉及到静态代码块
、构造代码块
和构造方法
的执行顺序。下面先给出静态代码块,构造方法,构造代码块详细介绍,之后使用Java代码示例得出正确执行顺序。
1. 静态代码块
静态代码块在类加载时执行
,且只执行一次
。它用于初始化静态变量
或执行静态操作
。
2. 构造代码块
构造代码块在每次创建对象
时都会执行,优先于构造方法
执行。它用于初始化实例变量
或执行实例操作
。
3. 构造方法
构造方法用于初始化对象
,可以有多个构造方法,但只有一个会被调用
。
执行顺序:
父类的静态代码块-> 子类的静态代码块 -> 父类的构造代码块-> 父类的构造方法-> 子类的构造代码块-> 子类的构造方法
Java代码示例:
class Parent {
static { //静态代码块
System.out.println("Parent Static Block");
}
{ //构造代码块
System.out.println("Parent Instance Initializer Block");
}
public Parent() {
System.out.println("Parent Constructor");
}
}
class Child extends Parent {
static {//静态代码块
System.out.println("Child Static Block");
}
{//构造代码块
System.out.println("Child Instance Initializer Block");
}
public Child() {
System.out.println("Child Constructor");
}
}
public class Main {
public static void main(String[] args) {
Child child = new Child();
}
}
执行结果:
Parent Static Block
Child Static Block
Parent Instance Initializer Block
Parent Constructor
Child Instance Initializer Block
Child Constructor
总结
由以上执行结果可以看出,执行顺序父类的静态代码块-> 子类的静态代码块 -> 父类的构造代码块-> 父类的构造方法-> 子类的构造代码块-> 子类的构造方法
是正确的。
希望对看到本文的你有帮助。
上一篇 java中的包装类(自动拆箱装箱)。 |
记得点赞收藏哦!!!
| 下一篇 Java中的序列化和反序列化详解!!! |