mirror of
https://github.com/LingCoder/OnJava8.git
synced 2026-08-24 06:53:27 +08:00
Update 09-Polymorphism.md
This commit is contained in:
@@ -723,9 +723,9 @@ Sandwich()
|
||||
|
||||
从创建 **Sandwich** 对象的输出中可以看出对象的构造器调用顺序如下:
|
||||
|
||||
1. 基类构造器被调用。这个步骤重复递归,直到根基类的构造器被调用,然后是它的派生类,以此类推,直到最底层的派生类构造器被调用。
|
||||
1. 基类构造器被调用。这个步骤被递归地重复,这样一来类层次的顶级父类会被最先构造,然后是它的派生类,以此类推,直到最底层的派生类。
|
||||
2. 按声明顺序初始化成员。
|
||||
3. 最终调用派生类的构造器。
|
||||
3. 调用派生类构造器的方法体。
|
||||
|
||||
构造器的调用顺序很重要。当使用继承时,就已经知道了基类的一切,并可以访问基类中任意 **public** 和 **protected** 的成员。这意味着在派生类中可以假定所有的基类成员都是有效的。在一个标准方法中,构造动作已经发生过,对象其他部分的所有成员都已经创建好。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user