java 静态代码块 构造函数 父子类中的执行顺序

2023-09-07  本文已影响0人  那钱有着落吗
父类B代码如下:

public class B {

public B(){
System.out.println("父类B的构造函数");
}

static {
System.out.println("父类B的中的静态代码块");
}

{
System.out.println("父类B的中的非静态代码块 sya()");
}
}

子类A代码如下:

public class A extends B{
public A(){
System.out.println("子类A的构造函数");
}

static {
System.out.println("子类A的中的静态代码块");
}

{
System.out.println("子类A的中的非静态代码块 sya()1");
}

public static void main(String[] args) {
A a = new A();
System.out.println("A!");
A a2 = new A();
System.out.println("启动完成");
}
}

执行顺序如下:

父类B的中的静态代码块
子类A的中的静态代码块
父类B的中的非静态代码块 sya()
父类B的构造函数
子类A的中的非静态代码块 sya()1
子类A的构造函数
A!
父类B的中的非静态代码块 sya()
父类B的构造函数
子类A的中的非静态代码块 sya()1
子类A的构造函数
启动完成
上一篇下一篇

猜你喜欢

热点阅读