方法過載和重寫的區別

2021-09-25 16:17:44 字數 586 閱讀 2228

方法的過載和重寫都是實現多型的方式,區別在於前者實現的是編譯時多型,後者實現的是執行時多型。過載發生在乙個類中,同名的方法如果有不同的引數列表(引數的型別不同、引數的個數不同或者二者都不同)則視為過載;重寫發生在子類與父類之間,即在子類中重寫從父類繼承的方法,重寫要求子類被重寫方法和父類被重寫方法有相同的引數列表返回型別,要比父類重寫方法更好訪問。過載對返回值型別沒有特殊要求。

方法過載的規則:

1.方法名一致,引數列表中引數的順序、型別、個數不同。

2.過載和方法的返回值無關。

3.可以丟擲不同的異常,可以有不同的修飾符。

方法重寫的規則:

1.發生在父類與子類之間。

2.引數列表必須與被重寫方法一致,返回值型別必須與被重寫方法返回值型別一致。

3.構造方法不能被重寫,宣告為final的方法不能被重寫,宣告為static的方法不能被重寫,但能被再次宣告。

4.訪問許可權不能比父類被重寫的訪問許可權低(public>protected>default>private)。

5.重寫方法一定不能拋出新的異常或者不能丟擲比被重寫方法更廣泛的異常。

方法過載和重寫的區別,方法過載重寫區別

答一 根本區別 重寫 重構 很直觀啊,子類覆蓋了父類的同名同參同返回值的方法,用子類呼叫的只會是重寫的方法 過載,同名而已。答二 1 過載 方法名相同,引數列表不同 2 重寫 也叫覆蓋,指在子類中定義乙個與父類中方法同名同引數列表的方法。因為子類會繼承父類的方法,而重寫就是將從父類繼承過來的方法重新...

方法過載和重寫的區別

方法過載和重寫的區別 答一 根本區別 重寫 重構 很直觀啊,子類覆蓋了父類的同名同參同返回值的方法,用子類呼叫的只會是重寫的方法 過載,同名而已。答二 1 過載 方法名相同,引數列表不同 2 重寫 也叫覆蓋,指在子類中定義乙個與父類中方法同名同引數列表的方法。因為子類會繼承父類的方法,而重寫就是將從...

方法過載和重寫的區別

答一 根本區別 重寫 重構 很直觀啊,子類覆蓋了父類的同名同參同返回值的方法,用子類呼叫的只會是重寫的方法 過載,同名而已。答二 1 過載 方法名相同,引數列表不同 2 重寫 也叫覆蓋,指在子類中定義乙個與父類中方法同名同引數列表的方法。因為子類會繼承父類的方法,而重寫就是將從父類繼承過來的方法重新...