1. Foo对构造函数进行了重载,那么默认的构造函数就不会被使用,在主类中,定义对象的时候,引用构造函数,却没有参数,自然无法通过编译. 2. 当设定字段初始值在初始化块前面的时候, 很明显使用了前者: 当初始化块在设定字段初始值前面的时候, 同样使用了前者: 得出的规律是:它们俩,谁在前面,就用谁: 但是,上面两张图都有一点相同的地方,就是当引用构造函数的时候,那么它的优先级是始终大于设定字段初始值和初始化块的. 3. 运行结果: 由运行结果可以很明显的看出,当主函数中new Leaf( )…