From 110584cd8e8cccaa574e6c8715a4b95bc2715505 Mon Sep 17 00:00:00 2001 From: heyahui <369425422@qq.com> Date: Wed, 8 Jan 2020 21:50:20 +0800 Subject: [PATCH] Update 09-Polymorphism.md --- docs/book/09-Polymorphism.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/book/09-Polymorphism.md b/docs/book/09-Polymorphism.md index dbf369d..35939a5 100644 --- a/docs/book/09-Polymorphism.md +++ b/docs/book/09-Polymorphism.md @@ -723,9 +723,9 @@ Sandwich() 从创建 **Sandwich** 对象的输出中可以看出对象的构造器调用顺序如下: -1. 基类构造器被调用。这个步骤重复递归,直到根基类的构造器被调用,然后是它的派生类,以此类推,直到最底层的派生类构造器被调用。 +1. 基类构造器被调用。这个步骤被递归地重复,这样一来类层次的顶级父类会被最先构造,然后是它的派生类,以此类推,直到最底层的派生类。 2. 按声明顺序初始化成员。 -3. 最终调用派生类的构造器。 +3. 调用派生类构造器的方法体。 构造器的调用顺序很重要。当使用继承时,就已经知道了基类的一切,并可以访问基类中任意 **public** 和 **protected** 的成员。这意味着在派生类中可以假定所有的基类成员都是有效的。在一个标准方法中,构造动作已经发生过,对象其他部分的所有成员都已经创建好。