public class Main { public static void main(String[] args) { /** * 总结:执行顺序为,静态代码块-普通代码块-构造方法-普通方法。 * 1.因为静态代码块只在类加载时执行,在一次虚拟机运行期间,一个类只会被加载一次,这样的话,静态代码块只会运行一次 * 2.普通代码块和构造方法为每创建一次对象则执行一次。执行顺序为先父类再子类 * 3.最后执行普通方法。 * */ B b = new B(); //父类静态代码块 //子类静态代码块 //父类普通代码块 //父类的构造方法 //子类普通代码块 //子类的构造方法 // new B().getName(); //父类普通代码块 //父类的构造方法 //子类普通代码块 //子类的构造方法 //子类普通方法 } } class A{ public A(){ System.out.println("父类的构造方法"); } { System.out.println("父类普通代码块"); } static { System.out.println("父类静态代码块"); } public void getName(){ System.out.println("父类普通方法"); } } class B extends A{ public B(){ super(); System.out.println("子类的构造方法"); } { System.out.println("子类普通代码块"); } static { System.out.println("子类静态代码块"); } public void getName(){ System.out.println("子类普通方法"); } }
06-18
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交