java继承子类实例化过程(细节解释)

 1 package face_08;
 2 class Fu{
 3     Fu(){
 4         super();
 5         show();
 6         return;
 7     }
 8     void show() {
 9         System.out.println("fu show");
10     }
11 }
12 class Zi extends Fu {
13     int num = 8;
14     Zi(){
15         super();
16         //-->通过super初始化父类内容时,子类的成员变量并未显示初始化。等super()初始化完毕后,
17         //才进行子类的成员变量显示初始化。
18         System.out.println("");
19         return;
20     }
21     void show() {
22         System.out.println("zi show..."+num);
23     }
24 }
25 public class ExtendsDemo5 {
26      public static void main(String[] args) {
27          Zi z = new Zi();
28          z.show();
29      }
30 }
31 /*
32  * 一个对象实例化过程;
33  * Person p = new Person();
34  * 1,JVM会读取指定的路径下的Person.class文件,并加载进内存,
35  *   并会先加载Person的父类(如果有直接的父类的情况下)。
36  * 2,在堆内存中的开辟空间,分配地址。
37  * 3,并在对象空间中,对对象中的属性进行默认初始化。
38  * 4,调用对应的构造函数进行初始化。
39  * 5,在构造函数中,第一行会先调用父类中的构造函数进行初始化。
40  * 6,父类初始化完毕后,在对子类的属性进行显示初始化。
41  * 7,再进行子类构造函数的特定初始化。
42  * 8,初始化完毕后,将地址值赋值给引用变量p。
43 */
View Code

 

posted @ 2021-09-27 17:03  doremi429  阅读(53)  评论(0)    收藏  举报