一、繼承的初始化順序
1.初始化父類,再初始化子類別。
2.先執行初始化物件中的屬性,再執行構造方法中的初始化。
二、下面,我們用一個簡單的例子來說明這個問題:
父類:Animal程式碼:
package com.bluesky; public class Animal { public Animal(){ System.out.println("动物类的构造方法执行了!"); } }
子類別:Dog程式碼:
package com.bluesky; public class Dog extends Animal { public Dog(){ System.out.println("子类的构造函数执行了!"); } }
測試類別:Test程式碼:
上面說明先執行父類別建構方法,然後才執行子類別的建構方法。
下面,我們稍微加點程式碼,來看下屬性和建構方法的執行順序
父類:Animal程式碼:
package com.bluesky; public class Test { public static void main(String[] args) { Dog dog = new Dog(); } }子類別:Dog類別程式碼:
package com.bluesky; public class Animal { public int age=10; //如果构造方法先执行,属性后执行,则age的值应该为:10; //因为后面赋值会覆盖前面的赋值 public Animal(){ age=20; //同理 System.out.println("动物类的构造方法执行了!"); } }rr 運行結果:
先初始化父類別物件的屬性,然後初始化父類別的建構方法。
再初始化子類別物件的屬性,最後初始化子類別的建構方法。
以上就是Java中的繼承初始化順序的內容,更多相關內容請關注PHP中文網(www.php.cn)!