我是Java的新手。方法在繼承的情況下重寫
所以我很想知道,當有兩個繼承類存在,它有2個重寫方法和2個構造函數(默認構造函數)。
所以當創建子類對象時,兩個默認構造函數都是根據派生順序調用的。但是,如果方法被覆蓋,是否會發生?
我是Java的新手。方法在繼承的情況下重寫
所以我很想知道,當有兩個繼承類存在,它有2個重寫方法和2個構造函數(默認構造函數)。
所以當創建子類對象時,兩個默認構造函數都是根據派生順序調用的。但是,如果方法被覆蓋,是否會發生?
當在Java中重寫方法時,子類中的方法代替父類中的方法,因此只有子類中的方法纔會執行。見this information on inheritance.
你的問題是答案,
號在構造函數的情況下,所獲得的或子類隱式調用超的默認構造函數()。 super()表示調用父類的構造函數。因此,當創建子類的對象時,會調用子類的構造函數,該類的第一行是對super()(也稱爲相應基類的構造函數)的隱式調用。因此,在輸出中,父類構造函數在子類構造函數的父類構造函數之前打印。
如果覆蓋,只有您在子類中定義的方法在使用子類對象調用時執行,因爲我們重寫了在父類中定義的方法。
讓我們有一些代碼, – Saranjith
http://stackoverflow.com/questions/1543191/method-overriding-in-java – emotionlessbananas
我對這個問題感到困惑,但是除非你使用'super'關鍵字 –