1 class Super{ 2 public Super(){ 3 System.out.子類對象在初始化之前會默認調用父類無參的構造方法,但是一旦子類顯示的調用了父類其他的構造方法,那么默認調用的構造方法將會被取消方法的重寫(Override): 當父類的某個方法不適合于子類本身的特征行為時就當重寫父類中應當改變的方法方法重寫應遵循的原則: 方法簽名(方法名+參數列表)必須相同 子類方法的返回值類型比父類方法的返回值類型更小或相等 子類方法聲明拋出的異常應比父類方法申明跑出異常更小或相等,即子類方法不能拋出新的異常類型,子類方法可以同時聲明拋出多個父類方法聲明拋出異常的子類(RuntimeException例外) 子類方法的訪問權限應比父類方法更大或相等overload 與 override| 區別點 | 重載(overload) | 重寫(override) | |
| 1 | 判斷規則 | 參數列表順序不同、類型不同、個數不同都可以構成重載 同類中方法名相同,但是方法的參數列表不同,與方法的返回值類型和修飾符無關 | 方法簽名(方法名+參數列表)必須相同 子類方法的返回值類型比父類方法的返回值類型更小或相等 子類方法聲明拋出的異常應比父類方法申明跑出異常更小或相等 子類方法的訪問權限應比父類方法更大或相等 |
| 2 | 權限 | 無權限要求 | 被重寫的方法不能擁有比父類更嚴格的權限 |
| 3 | 范圍 | 發生在一個類中 | 發生在繼承關系中 |
| 4 | 多態 | 編譯時多態 | 運行時多態 |
| 區 別 | this | super | |
| 1 | 使 用 | 調用本類中的字段或方法 | 從子類調用調用父類的字段或方法 |
| 2 | 構 造 | 可以調用本類中的構造方法,且有一個構造方法要作為出口 | 從子類調用父類的構造方法,不管子類如何安排最終一定會去調用,默認調用的父類中無參的構造方法 |
| 3 | 要 求 | 調用自身構造方法時放在構造方法首行 | 調用父類構造方法時放在子類構造方法首行 |
| 4 | 特 殊 | 表示當前對象 | 表示父類對象 |
新聞熱點
疑難解答