/** * */ package com.test; /** * @author lihai * @createdtime 2018-5-7 下午11:22:03 * @类描述 类的初始化顺序 * * 对于静态变量、静态初始化块、变量、初始化块、构造器, * 它们的初始化顺序以此是(静态变量、静态初始化块)>(变量、初始化块)>构造器。 * * 并不是父类完全初始化完毕后才进行子类的初始化,实际上子类的静态变量和静态初始 * 化块的初始化是在父类的变量、初始化块和构造器初始化之前就完成了。 * * 主程序类中的的静态变量先于静态代码块初始化,其后进入主函数类(程序入口处),其 * 后根据静态函数的调用情况,才能选择性的初始化。 * * */ public class ClassLoader { /** * @param args */ public static void main(String[] args) { B b = new B(); } } class A{ //static int a=5; { System.out.println("3.A的初始化块"); } A(){ System.out.println("4.A的无参构造方法"); } static{ System.out.println("1.A的静态方法"); } } class B extends A{ //static int b=10; B(){ System.out.println("6.B的无参构造方法"); } static{ System.out.println("2.B的静态方法"); } { System.out.println("5.B的初始化块"); } }
关于Java类的初始化的一些了解
猜你喜欢
转载自blog.csdn.net/lihai755/article/details/80233496
今日推荐
周排行