* 方法名相同
* 方法的參數類型、個數、順序至少有一項不相同
* 方法的返回類型可以不相同
* 方法的修飾符可以不相同
方法覆蓋必須滿足多種約束:
* 子類方法的名稱、參數簽名和返回的類型必須與父類方法的名稱、參數簽名和返回類型
一致。
* 子類方法不能縮小父類方法的訪問權限。
* 子類方法不能拋出比父類方法的更多的異常。
* 方法覆蓋只存在于子類和父類之間。
* 父類的靜態方法不能被子類覆蓋為非靜態的方法。
* 子類可以定義與父類靜態方法同名的靜態方法,以便在子類中隱藏父類的靜態方法。
* 父類的非靜態方法不能被子類覆蓋為靜態方法。
* 父類的私有方法不能被子類覆蓋。
* 父杰的抽象方法可以被子類通過兩種途徑覆蓋:一是子類實現父類的抽象訪求;二是子類重新聲明父類的抽象方法。
* 父類的非抽象方法可以被子類覆蓋為抽象方法。