您链接到的同一Sun教程中已经描述了该优点:
最终方法不能在子类中覆盖。 有关接口和继承的课程将对此进行讨论。
非最终方法在初始化中很危险的原因是,超类的实例初始化在子类初始化之前执行。因此,如果非最终方法在子类中被覆盖并在超类的初始化期间执行,则它可能正在访问子类的未初始化字段,从而给出错误的结果。
通用规则是(引用有效Java): 构造函数不得直接或间接调用可重写的方法。

您链接到的同一Sun教程中已经描述了该优点:
最终方法不能在子类中覆盖。 有关接口和继承的课程将对此进行讨论。
非最终方法在初始化中很危险的原因是,超类的实例初始化在子类初始化之前执行。因此,如果非最终方法在子类中被覆盖并在超类的初始化期间执行,则它可能正在访问子类的未初始化字段,从而给出错误的结果。
通用规则是(引用有效Java): 构造函数不得直接或间接调用可重写的方法。