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 }