Java第三讲动手动脑
1

以上代码无法通过编译主要是由于在Foo类中自定义了有参的构造函数,系统不在提供默认的构造函数(无参),而在上述的引用中并没有提供参数导致无法通过编译。
2.

运行结果

由运行结果分析可知,在运行时若提供有参的构造则执行有参构造,如为提供参数应该看初始化的顺序,
程序会先执行一边靠前的初始化在执行靠后的初始化,因此最终值取决于靠后的初始化。
3.

通过运行结果总结静态初始化块的执行顺序:
1.静态初始化块只执行一次
2.创建子类型的对象时,也会导致父类型的静态初始化块的执行。
4.

静态方法中不能直接访问类的实例成员,必须先创建对象,再通过对象访问。
浙公网安备 33010602011771号