两种方法显然都有缺点:
- 在Java中,调用转到无法
this
正确使用的方法,因为该方法的成员尚未初始化。 - 在C 中,如果您不知道C 如何构造类,则将调用一种不直观的方法(即,不是派生类中的方法)。
为什么 每种语言都这样做是一个悬而未决的问题,但是两种语言都可能声称是“更安全”的选择:C
++的方法可以防止使用未初始化的成员;Java的方法允许(在某种程度上)类的构造函数中的多态语义(这是一个完全有效的用例)。

两种方法显然都有缺点:
this正确使用的方法,因为该方法的成员尚未初始化。
为什么 每种语言都这样做是一个悬而未决的问题,但是两种语言都可能声称是“更安全”的选择:C
++的方法可以防止使用未初始化的成员;Java的方法允许(在某种程度上)类的构造函数中的多态语义(这是一个完全有效的用例)。