关于继承中静态代码块,构造代码块,构造函数执行顺序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于继承中静态代码块,构造代码块,构造函数执行顺序相关的知识,希望对你有一定的参考价值。

 1 class HelloA {
 2 
 3     public HelloA() {
 4         System.out.println("HelloA");
 5     }
 6    
 7     { System.out.println("I‘m A class"); }
 8    
 9     static { System.out.println("static A"); }
10 
11 }
12 
13 public class HelloB extends HelloA {
14     public HelloB() {
15         System.out.println("HelloB");
16     }
17    
18     { System.out.println("I‘m B class"); }
19    
20     static { System.out.println("static B"); }
21    
22     public static void main(String[] args) {
23 
24         System.out.println("-------main start-------");
25         new HelloB();
26         new HelloB();
27         System.out.println("-------main end-------");
28     }
29 }

 Microsoft Windows [版本 6.2.9200]
(c) 2012 Microsoft Corporation。保留所有权利。

C:\Users\xw>javac HelloB.java

C:\Users\xw>java HelloB
static A
static B
-------main start-------
I‘m A class
HelloA
I‘m B class
HelloB
I‘m A class
HelloA
I‘m B class
HelloB
-------main end-------

以上是关于关于继承中静态代码块,构造代码块,构造函数执行顺序的主要内容,如果未能解决你的问题,请参考以下文章

静态代码块构造代码块构造函数以及Java类初始化顺序

Java子父类间静态代码块非静态代码块构造方法的执行顺序

关于静态块静态属性构造块构造方法的执行顺序

java中静态代码块,非静态代码块,构造函数执行顺序

java 关于Java中静态代码块以及构造函数的执行先后顺序

Java类的各种成员初始化顺序如:父子类继承时的静态代码块,普通代码块,静态方法,构造方法,等先后顺