牛客_{}大括号里面的内容都会执行,如果它不是成员函数的时候,看成是构造函数中的方法;
总结:
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 A
static B
I’m A class
I’m AA class
I’m BB class
每天都做更好的自己,不纠结于输赢成败