Java面試題——關於重寫(override)與過載(overload)
阿新 • • 發佈:2019-02-18
一. 首先,什麼是重寫?什麼是過載?
1.重寫(override)
重寫是發生於父類與子類之間多型性的一種表現,簡單的說就是子類重寫父類的“可被重寫”的方法,為什麼說“可被重寫”呢,因為在Java中含有private、final以及static等修飾符的方法是不具有多型性的(構造方法也不可重寫,因為構造方法實際上就是static方法,只不過其申明是隱式的),也即子類不可重寫父類中的這些方法。
2.過載(overload)
過載是發生於單個類中多型性的一種表現,簡單的說就是在一個類中編寫不同形參(形參個數、型別或順序不同)的同名方法,然後可以通過該類的物件根據不同形參的方法稱為過載。
二. 再者,重寫(override)與過載(overload)的區別在哪?
區別點 | 重寫 | 過載 |
---|---|---|
形參 | 不可改變 | 必須改變 |
返回型別 | 不可改變 | 可修改 |
異常 | 可以減少或刪除父類方法所丟擲異常,一定不能丟擲新的或者更廣的異常 | 可修改 |
訪問修飾符 | 可降低限制(例如可將public改為protected),但不可升級為更嚴格修飾限制 | 可修改 |
PS:自己當做筆記用,僅供參考,如有錯誤,煩請指出,不勝感激。