总结:
new一个子类对象的时候:
最先执行的是静态代码快,先父类,在子类其次开始执行单独由大括号{}中的内容,在执行构造函数,先子类后父类成员函数中的不会执行
题目:
检查程序,是否存在问题,如果存在指出问题所在,如果不存在,说明输出结果。
package t0820; public class HelloB extends HelloA { public HelloB(){ System.out.println("I’m BB class"); //构造函数会执行 } public void printB() //成员函数在new时不会执行 { System.out.println("I’m B class"); } static { System.out.println("static B"); //静态代码快会执行 } public static void main(String[] args){ new HelloB(); } } class HelloA { public HelloA(){ System.out.println("I’m AA class"); // 构造函数会执行 } { System.out.println("I’m A class"); //{}会执行,而且先于构造函数执行 } static { System.out.println("static A"); //静态代码块最新执行 } }结果为:
static Astatic BI’m A classI’m AA classI’m BB class
转载于:https://www.cnblogs.com/snowwhite/p/4750534.html