首页 > 编程语言 > 详细

java 基础之类加载顺序

时间:2015-03-17 12:13:08      阅读:154      评论:0      收藏:0      [点我收藏+]
class Base{
    public static int a = 10;
    public int b = 20;
    static
    {
        System.out.println("Static Init Base " + a);
        //System.out.println("Null Init " + b);
    }
    public Base()
    {
        System.out.println("Init Base " + this.b);
    }
}
//一级子类和基类包含的内容一样
class SuperClass extends Base{
 //静态变量、静态块执行顺序,按书写先后顺序
    public static int a1 = getSuperStaticNumber();
    public int b1 = getSuperInstanceNumber();
    public SuperClass()
    {
        System.out.println("Init SuperClass" + this.b1);
    }
    static
    {
        System.out.println("Static Init SuperClass" + a1);
    }
    public static int getSuperStaticNumber()
    {
        System.out.println("Static member init");
        return 100;
    }
    public int getSuperInstanceNumber()
    {
        System.out.println("Instance member init");
        return 200;
    }
}

//二级子类为测试该代码的驱动类
 
public class Sub extends SuperClass{
    public static int a2 = getStaticNumber();
    public int b2 = getInstanceNumber();
    public Sub()
    {
        System.out.println("Init SubClass " + this.b2);
    }
    public static int getStaticNumber()
    {
        System.out.println("Static member init Sub");
        return 1000;
    }
    public int getInstanceNumber()
    {
        System.out.println("Instance member init Sub");
        return 2000;
    }
    static
    {
        System.out.println("Static Init " + a2);
    }
  
    // 程序入口,main
    public static void main(String args[])
    {
        new Sub();
    }
}

Static Init Base 10
Static member init
Static Init SuperClass100
Static member init Sub
Static Init 1000

Init Base 20

Instance member init
Init SuperClass200

Instance member init Sub
Init SubClass 2000

 


静态变量,静态代码块,成员,构造(从父到子)

java 基础之类加载顺序

原文:http://www.cnblogs.com/mrgong/p/4343789.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!