package com.sunlei.Util; /** * Created by Administrator on 2016/12/27 0027. */ class Baba { public static int a = method2(); public Baba(){ System.out.println("父类无参初始化"); } public static int method1(){ System.out.println("父类static method1加载"); return 1; } public static int method2(){ System.out.println("父类static method2加载"); return 2; } public static void method3(){ System.out.println("父类static method3加载"); } static{ System.out.println("父类static模块加载"); } { System.out.println("父类普通模块加载"); } } class Erzi extends Baba{ public static int a = method2(); public Erzi(){ System.out.println("子类无参初始化"); } public static int method1(){ System.out.println("子类static method1加载"); return 1; } public static int method2(){ System.out.println("子类static method2加载"); return 2; } public static void method3(){ System.out.println("子类static method3加载"); } static{ System.out.println("子类static模块加载"); } { System.out.println("子类普通模块加载"); } public static void main(String[] args) { Erzi t = new Erzi(); t.method1(); } }
打印控制台信息
父类static method2加载
父类static模块加载
子类static method2加载
子类static模块加载
父类普通模块加载
父类无参初始化
子类普通模块加载
子类无参初始化
子类static method1加载
类加载顺序:
1.static变量和static{},static method()模块拥有同一优先级,按顺序加载。
2子类继承父类实例化类加载顺序
【1】父类static (静态变量,静态模块,静态方法)
【2】子类static (静态变量,静态模块,静态方法)
【3】父类普通模块
【4】父类构造方法
【5】子类普通模块
【6】子类构造方法
【7】。。。该干嘛干嘛