1. 程式人生 > >Java面試題——關於重寫(override)與過載(overload)

Java面試題——關於重寫(override)與過載(overload)

一. 首先,什麼是重寫?什麼是過載?
1.重寫(override)

  重寫是發生於父類與子類之間多型性的一種表現,簡單的說就是子類重寫父類的“可被重寫”的方法,為什麼說“可被重寫”呢,因為在Java中含有private、final以及static等修飾符的方法是不具有多型性的(構造方法也不可重寫,因為構造方法實際上就是static方法,只不過其申明是隱式的),也即子類不可重寫父類中的這些方法。

2.過載(overload)

  過載是發生於單個類中多型性的一種表現,簡單的說就是在一個類中編寫不同形參(形參個數、型別或順序不同)的同名方法,然後可以通過該類的物件根據不同形參的方法稱為過載。

二. 再者,重寫(override)與過載(overload)的區別在哪?

區別點 重寫 過載
形參 不可改變 必須改變
返回型別 不可改變 可修改
異常 可以減少或刪除父類方法所丟擲異常,一定不能丟擲新的或者更廣的異常 可修改
訪問修飾符 可降低限制(例如可將public改為protected),但不可升級為更嚴格修飾限制 可修改

PS:自己當做筆記用,僅供參考,如有錯誤,煩請指出,不勝感激。