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

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() {
    }
输出:无

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容