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 */