作者:lksxq_468 | 来源:互联网 | 2023-10-10 20:49
1.父类静态成员和静态初始化块,按在代码中出现的顺序依次执行2.子类静态成员和静态初始化块,按在代码中出现的顺序依次执行3.父类实例成员和实例初始化块,按在代码中出现的顺序依次执行
- 1. 父类静态成员和静态初始化块 ,按在代码中出现的顺序依次执行
- 2. 子类静态成员和静态初始化块 ,按在代码中出现的顺序依次执行
- 3. 父类实例成员和实例初始化块 ,按在代码中出现的顺序依次执行
- 4. 父类构造方法
- 5. 子类实例成员和实例初始化块 ,按在代码中出现的顺序依次执行
- 6. 子类构造方法
总结:父类静态成员和静态代码块->子类静态成员和静态代码块->父类非静态成员和非静态代码块->父类构造方法->子类非静态成员和非静态代码块->子类构造方法
父类:
1 public class A {
2
3 public static String a=printStr("父类的静态变量");
4 public String s = printStr("父类的非静态变量");
5 static {
6 printStr("父类的静态块");
7 }
8 {
9 printStr("父类的非静态块");
10 }
11 public A(){
12 printStr("父类构造方法");
13 }
14
15
16 public static String printStr(String str){
17 System.out.println(str);
18 return str;
19 }
20 }
子类:
1 public class B extends A {
2
3 public static String b=printStr("子类的静态变量");
4 public String st = printStr("子类的非静态变量");
5
6 static {
7 printStr("子类的静态块");
8 }
9 {
10 printStr("子类的非静态块");
11 }
12 public B(){
13 printStr("子类的构造方法");
14 }
15
16 //main
17 public static void main(String[] args) {
18 new B();
19 }
20 }
运行结果:
父类的静态变量
父类的静态块
子类的静态变量
子类的静态块
父类的非静态变量
父类的非静态块
父类构造方法
子类的非静态变量
子类的非静态块
子类的构造方法