1. 程式人生 > >new子類會先運行父類的構造函數

new子類會先運行父類的構造函數

nbsp 父類 log 隱身 blog 對象 gpo 類繼承 一行

發現子類構造函數運行時,先運行了父類的構造函數。為什麽呢?

原因:子類的所有構造函數中的第一行,其實都有一條隱身的語句super();

super(): 表示父類的構造函數,並會調用於參數相對應的父類中的構造函數。而super():是在調用父類中空參數的構造函數。

為什麽子類對象初始化時,都需要調用父類中的函數?(為什麽要在子類構造函數的第一行加入這個super()?)

因為子類繼承父類,會繼承到父類中的數據,所以必須要看父類是如何對自己的數據進行初始化的。所以子類在進行對象初始化時,先調用父類的構造函數,這就是子類的實例化過程

new子類會先運行父類的構造函數