重寫與過載的區別

2021-09-11 19:06:55 字數 888 閱讀 5207

1.重寫(override)

從字面上看,重寫就是 重新寫一遍的意思。其實就是在子類中把父類本身有的方法重新寫一遍。子類繼承了父類原有的方法,但有時子類並不想原封不動的繼承父類中的某個方法,所以在方法名,引數列表,返回型別(除過子類中方法的返回值是父類中方法返回值的子類時)都相同的情況下, 對方法體進行修改或重寫,這就是重寫。但要注意子類函式的訪問修飾許可權不能少於父類的。 

例如:public class father

public void sayhello()

}class son extends father

}重寫 總結: 

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

2.方法名,引數列表,返回型別(除過子類中方法的返回型別是父類中返回型別的子類)必須相同 

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

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

2.過載(overload)

在乙個類中,同名的方法如果有不同的引數列表(引數型別不同、引數個數不同甚至是引數順序不同)則視為過載。同時,過載對返回型別沒有要求,可以相同也可以不同,但不能通過返回型別是否相同來判斷過載。 

例如:public class father

public void sayhello(string name)

}過載 總結: 

1.過載overload是乙個類中多型性的一種表現 

2.過載要求同名方法的引數列表不同(引數型別,引數個數甚至是引數順序) 

3.過載的時候,返回值型別可以相同也可以不相同。無法以返回型別作為過載函式的區分標準

面試時,問:過載(overload)和重寫(override)的區別?

過載與重寫區別

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

重寫與過載的區別

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

過載與重寫的區別

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