继承情况下类加载顺序

来源:互联网 发布:js 数组包含对象 编辑:程序博客网 时间:2024/06/12 14:59
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】。。。该干嘛干嘛

0 0
原创粉丝点击