1 package Jicheng;
2
3 public class Fulei {
4 int mm=3;
5 Fulei(){
6 //super();
7 fly();
8 return;
9 }
10 void fly(){
11 System.out.println("父类fly方法"+mm);
12 }
13 }
1 package Jicheng;
2
3 public class Zilei extends Fulei{
4 int num=8;
5 Zilei(){
6 super();
7 System.out.println("子类构造方法"+num);
8 return;
9 }
10
11 void fly(){
12 System.out.println("子类fly方法 "+num);
13 }
14
15 }
1 package Jicheng;
2
3 public class TestFZ {
4
5
6 public static void main(String[] args) {
7 Zilei test=new Zilei();
8 test.fly();
9 /*
10 *1,JVM会读取制定路径下的Zilei.class文件,并加载进内存。
11 并会先加载Zilei的父类Fulei(有直接父类的情况下,注意Object)
12 2,new 在堆内存中开辟空间,分配地址。
13 3,在对象空间中,对对象中的属性进行默认初始化。数字是0,字符是null
14 4,调用对应的构造函数进行初始化。
15 5,先在子类构造函数中,因第一行隐含的super();会先到父类中调用构造函数进行初始化。
16 6,父类初始化完毕后,再对子类的属性进行显示初始化。此时子类属性如果赋值将会看到
17 7,再进行子类构造函数的特定初始化。
18 8,初始化完毕后,将地址值赋值给引用变量。 */
19 }
20
21 }