时间:2021-02-02 10:08:51 | 栏目:Android代码 | 点击:次
本文介绍了Android代码块执行顺序分析总结,分享给大家,具体如下:
子类、父类变量,代码块,以及构造方法的加载顺序,是我们在程序开发中时不时遇到的一个问题,也是比较容易混淆的。
基础准备:
测试的父类:
public class ParentClass {
public static String name = "爸爸";
public int age = 40;
public ParentClass(){
System.out.println("父类构造函数");
}
//非静态代码块
{
System.out.println("父类非静态代码块" + "---" + age);
}
//静态代码块
static{
System.out.println("父类静态代码块" + "---" + name);
}
}
测试的子类:
public class ChildrenClass extends ParentClass{
public static String name = "儿子";
public int age = 15;
public ChildrenClass(){
System.out.println("子类构造函数");
}
{
System.out.println("子类非静态代码块" + "---" + age);
}
static {
System.out.println("子类静态代码块" + "---" + name);
}
}
执行new ChildrenClass()结果:

结果分析:
父类静态代码块执行前,父类静态变量就已经执行了。
父类非静态代码块执行前,父类非静态变量就已经执行了。
上面结论子类同理。
代码块执行顺序总结:
父类的静态成员变量―->父类静态代码块―->子类静态成员变量―->子类静态代码块―>父类非静态变量―->父类非静态代码块―->父类构造方法―->子类非静态变量―->子类非静态代码块―->子类构造方法。
另外关于代码块的总结: