A. java中,子類調用父類函數構造函數中被重寫的方法,輸出語句為什麼是默認值
1,Java的函數調用是虛擬調用,對象名.方法名,調用的都是其真實類型的函數,就是說,對象實際上是一個dog,那麼調用的就是dog的重寫方法。父類構造器之所以被調用,是因為子類的構造器會調用父類的構造器,整個過程實際上是dog的構造。
2,這個和初始化順序有關,new對象時,會先初始化成員變數再調用構造器,所以初始化順序是:父類的成員變數->父類構造器->子類成員變數->子類構造器
也就是說,父類構造器中調用getAge的時候,dog的成員變數還沒有初始化
等到子類構造器中再調用一次的時候,已經完成初始化。