码迷,mamicode.com
首页 > 编程语言 > 详细

java 基础之类加载顺序

时间:2015-03-17 12:15:46      阅读:232      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!