過載與重寫的區別

2021-08-21 02:50:24 字數 1120 閱讀 9411

重寫方法的規則

1、引數列表必須完全與被重寫的方法相同,否則不能稱其為重寫而是過載。

2、返回的型別必須一直與被重寫的方法的返回型別相同,否則不能稱其為重寫而是過載。

3、訪問修飾符的限制一定要大於被重寫方法的訪問修飾符(public>protected>default>private)

4、重寫方法一定不能拋出新的檢查異常或者比被重寫方法申明更加寬泛的檢查型異常。例如:

父類的乙個方法申明了乙個檢查異常ioexception,在重寫這個方法是就不能丟擲exception,只能丟擲ioexception的子類異常,可以丟擲非檢查異常。5、

重寫方法只能存在於具有繼承關係中,重寫方法只能重寫父類非私有的方法。

public class father

} public class son extends father

} 當上例中father類speak()方法被private時,son類不能重寫出father類speak()方法,此時son類speak()方法相當與在son類中定義的乙個speak()方法。

father類speak()方法一但被final時,無論該方法被public,protected及預設所修飾時,son類根本不能重寫father類speak()方法,

而過載的規則:

1、必須具有不同的引數列表;

2、可以有不同的返回型別,只要引數列表不同就可以了;

3、可以有不同的訪問修飾符;

4、可以丟擲不同的異常;

public class dog

void bark()//bark()方法是過載方法

void bark(string m,double l)//注意:過載的方法的返回值都是一樣的,

void bark(int a,string n)//不能以返回值區分過載方法,而只能以「引數型別」和「類名」來區分

重寫與過載的區別在於:

重寫多型性起作用,對呼叫被過載過的方法可以大大減少**的輸入量,同乙個方法名只要往裡面傳遞不同的引數就可以擁有不同的功能或返回值。

用好重寫和過載可以設計乙個結構清晰而簡潔的類,可以說重寫和過載在編寫**過程中的作用非同一般.

過載與重寫區別

方法的過載 overload 在同一類中看相同但卻不同多樣性 要求 1.同乙個類中,2.方法名相同,3.方法的引數列表不同 引數型別 引數順序 補充 方法的過載與方法的返回值沒有關係 public class overload class testoverload public int getsum...

重寫與過載的區別

1 過載 1 是指方法名一樣,引數不同的幾個方法,它們的功能相近 2 呼叫的時候是根據呼叫 引數的型別 來識別方法。2 重寫 也是方法的覆蓋 1 是子類中修改父類中方法的方法 2 在子型別中定義,與父型別中的方法名和引數都一樣的方法 3 在呼叫是,是根據 物件的型別 來呼叫相應的方法。舉個例子 pu...

過載與重寫的區別

過載 是指乙個類中定義多個方法名相同,引數列表不同的方法,在編譯時,根據引數的個數,型別,順序來決定繫結哪個方法。重寫 是指在子類中定義和父類完全相同的方法,在程式執行時,根據物件的型別 而不是引用型別 呼叫不同的方法。方法過載 指的是方法名相同的完全不同的方法。引數型別,引數個數和引數順序不同 在...