当涉及到继承时,执行顺序

public class HelloB extends HelloA 
{
 public HelloB()
 {
 }
 {
     System.out.println("I’m B class");
 }
 static
 {
     System.out.println("static B");
 }
 public static void main(String[] args)
 {
     new HelloB();
 }
}
class HelloA
{
 public HelloA()
 {
 }
 {
     System.out.println("I’m A class");
 }
 static
 {
     System.out.println("static A");
 }
}
image.png

1、执行父类的静态代码块

static {
        System.out.println("static A");
    }
输出:static A

2、执行子类的静态代码块

static {
        System.out.println("static B");
    }
输出:static B

3、执行父类的构造代码块

{
        System.out.println("I’m A class");
    }
输出:I'm A class

4、执行父类的构造函数

public HelloA() {
    }
输出

5、执行子类的构造代码块

{
        System.out.println("I’m B class");
    }
输出:I'm B class

6、执行子类的构造函数

public HelloB() {
    }
输出:无

你可能感兴趣的:(当涉及到继承时,执行顺序)