在构造函数中调用非最终方法通常是个坏主意-至少,我建议您 大量 编写文档。请记住,当调用f()时,将不会调用C的构造函数-
也不会调用任何变量初始化器。该对象仅被半初始化,因此需要非常仔细地编写方法。
super.f()在普通的Java中,没有任何隐式调用的方法。鉴于我会在该代码中发出很大的警告,所以只有一条语句离世界还很远:)
如果您想验证它是否被调用,则始终可以
A.f()在调用之后立即检查A的构造函数中的结果-这将检查该调用是否已到达顶层。

在构造函数中调用非最终方法通常是个坏主意-至少,我建议您 大量 编写文档。请记住,当调用f()时,将不会调用C的构造函数-
也不会调用任何变量初始化器。该对象仅被半初始化,因此需要非常仔细地编写方法。
super.f()在普通的Java中,没有任何隐式调用的方法。鉴于我会在该代码中发出很大的警告,所以只有一条语句离世界还很远:)
如果您想验证它是否被调用,则始终可以
A.f()在调用之后立即检查A的构造函数中的结果-这将检查该调用是否已到达顶层。