方法過載 覆蓋和重寫的區別

2022-09-10 14:30:33 字數 1159 閱讀 1268

過載(overload):

過載:在乙個類中,方法名相同,但引數列表不同。對於方法來說,方法名和引數列表共同組成了方法的標識,因此在乙個類中允許存在兩個相同名稱的方法,只要方法的引數列表不完全相同(引數數量或引數型別不同)。這時稱該方法具有同名的過載形式,即方法名相同而標識不同。

訪問修飾符:可以不相同

返回值:可以不相同

方法名:相同

引數列表:必須不同

覆蓋(new):

覆蓋:有時不希望派生類一成不變地繼承基類中的所有成員,使用new關鍵字進行修飾,可以覆蓋基類中的同名成員。

訪問修飾符:可以不相同

返回值:可以不相同

方法名:相同

引數列表:相同

重寫(override):

重寫:將基類的方法成員定義為虛擬方法(使用關鍵字virtual修飾),在派生類中對虛擬方法進行過載(使用關鍵字override修飾)。

類成員的虛擬只能用於方法,不能用於字段。

位置:存在於繼承關係的類中

訪問修飾符:相同,且不能是private

返回值:相同

方法名:相同

引數列表:相同

過載(overload):

過載:在乙個類中,方法名相同,但引數列表不同。對於方法來說,方法名和引數列表共同組成了方法的標識,因此在乙個類中允許存在兩個相同名稱的方法,只要方法的引數列表不完全相同(引數數量或引數型別不同)。這時稱該方法具有同名的過載形式,即方法名相同而標識不同。

訪問修飾符:可以不相同

返回值:可以不相同

方法名:相同

引數列表:必須不同

覆蓋(new):

覆蓋:有時不希望派生類一成不變地繼承基類中的所有成員,使用new關鍵字進行修飾,可以覆蓋基類中的同名成員。

訪問修飾符:可以不相同

返回值:可以不相同

方法名:相同

引數列表:相同

重寫(override):

重寫:將基類的方法成員定義為虛擬方法(使用關鍵字virtual修飾),在派生類中對虛擬方法進行過載(使用關鍵字override修飾)。

類成員的虛擬只能用於方法,不能用於字段。

位置:存在於繼承關係的類中

訪問修飾符:相同,且不能是private

返回值:相同

方法名:相同

引數列表:相同

方法過載和方法覆蓋(重寫)的區別

方法過載和重寫是不同的概念,主要有以下區別 1 首先是含義不同 1 方法過載是在同乙個類中,宣告多個同名方法,通過引數列表來區分不同的方法,與引數列表的數量 型別和順序有關,與修飾符和返回值型別以及丟擲異常型別無關 2 方法重寫 方法覆蓋 的前提是發生在具有繼承關係的兩個類之間,方法重寫有以下規則 ...

重寫(覆蓋) 過載的區別

override 覆蓋 重寫 物件 方法 解釋 重寫乙個方法,以實現不同的功能 用於 子類繼承父類的方法,重寫 重現實現 繼承 寫新方法 父類的方法 規則 1 引數列表相同,否則為過載而非重寫 2 訪問修飾符大於被重寫方法 public protected default private 3 返回值...

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

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