Update 09-Polymorphism.md

This commit is contained in:
heyahui
2020-01-08 22:49:30 +08:00
committed by GitHub
parent 110584cd8e
commit d4f6d7e132

View File

@@ -1037,7 +1037,7 @@ RoundGlyph.RoundGlyph(), radius = 5
另一方面应该震惊于输出结果。逻辑方面我们已经做得非常完美然而行为仍不可思议的错了编译器也没有报错C++ 在这种情况下会产生更加合理的行为)。像这样的 bug 很容易被忽略,需要花很长时间才能发现。
因此,编写构造器有一条良好规范:做尽量少的事让对象进入良好状态。如果有可能的话,尽量不要调用类中的任何方法。在构造器中唯一能安全调用的只有基类的 **final** 方法(包括 **private** 方法,它们自动属于 **final**)。这些方法不能被重写,因此不会产生意想不到的结果。你可能无法永远遵循这条规范,但应该朝着它努力。
因此,编写构造器有一条良好规范:做尽量少的事让对象进入良好状态。如果有可能的话,尽量不要调用类中的任何方法。在基类的构造器中能安全调用的只有基类的 **final** 方法(这也适用于可被看作是 **final****private** 方法)。这些方法不能被重写,因此不会产生意想不到的结果。你可能无法永远遵循这条规范,但应该朝着它努力。
<!-- Covariant Return Types -->