1. 程式人生 > 其它 >Java父類物件中呼叫子類方法 java多型陣列

Java父類物件中呼叫子類方法 java多型陣列

為什麼我不能重寫test方法?

因為只有子類方法刪除以後可以重寫父類的方法test,一開始我刪掉了父類的test方法,在父類中重寫的時候當然只能重寫Object的方法,相當於父輩繼承爺爺輩,一定要想好誰是子類誰是父類

子類的方法刪掉以後當然可以重寫父類的方法,相當於又從父類把方法繼承了回來

 

 如上圖,在父類重寫中並沒有test方法

 

 

而在子類中重寫明顯可以重寫父類中的test方法

重寫以後出現override註釋

 

 

靜態方法和非靜態方法在重寫上有什麼區別?

 

 去掉static出現如下圖紅框部分

 

 

說明靜態方法不能重寫,非靜態可以

重新執行後發現結果變了

 

 

結果證明靜態和非靜態方法是有區別的

非靜態方法才可以選擇重寫

總結

重寫需要有繼承關係,子類重寫父類的方法

1.方法名、引數列表必須相同

2.修飾符:範圍可以擴大但不能縮小 public>Protected>default>private

3.丟擲的異常:範圍可以被縮小,但不能擴大ClassNotFoundException -->Exception(大)

4.子類和父類方法必須一致,方法體不同

 

為什麼需要重寫?

父類的功能子類不一定需要,或者不一定滿足

Alt+Insert :override;