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

2021-10-23 12:04:28 字數 728 閱讀 6184

方法過載和重寫是不同的概念,主要有以下區別:

1、首先是含義不同

1)方法過載是在同乙個類中,宣告多個同名方法,通過引數列表來區分不同的方法,與引數列表的數量、型別和順序有關,與修飾符和返回值型別以及丟擲異常型別無關

2)方法重寫(方法覆蓋)的前提是發生在具有繼承關係的兩個類之間,方法重寫有以下規則:

a.引數列表必須保持一致

b.返回值型別必須保持一致

c.方法名必須保持一致

d.重寫方法的訪問許可權範圍必須大於等於父類方法

e.重寫方法的丟擲異常型別範圍不能大於父類方法

2、方法的過載和重寫的作用不同

過載:在乙個類中為一種行為提供多種實現方式並提高可讀性

重寫:父類方法無法滿足子類的要求,子類通過方法重寫滿足需求

例項:過載:構造方法的過載、println()方法過載

重寫:object類的tostring()、equals()、hashcode()等都可以被子類重寫

用圖表表示如下:

原文:

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

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

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

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

方法過載,重構,覆蓋,重寫的區別

方法過載還是比較好理解的,就是在類的內部,定義多個方法,這些方法的方法名字相同,引數型別和引數個數不同,注意,返回值型別並不能區分過載 看 public void show int a,double b public void show double c public intshow double ...