java中過載與重寫的區別

2021-09-20 09:50:56 字數 1769 閱讀 7415

重寫(overriding)

過載(overloading)

類的數量

父子類、介面與實現類

本類方法名稱

一致一致

引數列表

一定不能修改

必須修改

返回型別

一定不能修改

可以修改

異常可以減少或刪除,但不能擴充套件

可以修改

過載發生在本類,方法名相同,引數列表不同,與返回值無關,只和方法名,引數列表,引數的型別有關.

過載(overload):首先是位於乙個類之中或者其子類中,具有相同的方法名,但是方法的引數不同,返回值型別可以相同也可以不同。

(1):方法名必須相同

(2):方法的引數列表一定不一樣。

(3):訪問修飾符和返回值型別可以相同也可以不同。

其實簡單而言:過載就是對於不同的情況寫不同的方法。 比如,同乙個類中,寫不同的建構函式用於初始化不同的引數。

public class test1 

//引數數目不同

public void out(integer n)

//引數型別不同

public void out(string string)

public void out(integer n ,string string)

//引數順序不同

重寫發生在父類子類之間,比如所有類都是繼承與object類的,object類中本身就有equals,hashcode,tostring方法等.在任意子類中定義了重名和同樣的引數列表就構成方法重寫.重寫(override):一般都是表示子類和父類之間的關係,其主要的特徵是:方法名相同,引數相同,但是具體的實現不同。

重寫的特徵:

(1):方法名必須相同,返回值型別必須相同

(2):引數列表必須相同

(3):訪問許可權不能比父類中被重寫的方法的訪問許可權更低。例如:如果父類的乙個方法被宣告為public,那麼在子類中重寫該方法就不能宣告為protected。

(4):子類和父類在同乙個包中,那麼子類可以重寫父類所有方法,除了宣告為private和final的方法。

(5):構造方法不能被重寫,

簡單而言:就是具體的實現類對於父類的該方法實現不滿意,需要自己在寫乙個滿足於自己要求的方法。

java中過載與重寫的區別

過載 overload 方法過載是乙個類中有多個同名方法,但是引數列表不同 引數型別或個數不同 通過傳入的引數不同來呼叫不同的方法。過載是乙個類多型性的表現。方法過載不要求返回值型別相同,所以不能以返回值型別作為區分過載的標準。重寫 override 方法重寫是方法名和引數列表 引數型別和引數個數 ...

JAVA中過載與重寫的區別

方法過載是指在乙個類中定義多個同名的方法 a int b a a string name a int c int d a 我 但要求每個方法具有不同的引數列表 也就是說引數的個數和型別不同 注 與返回值型別無關 程式呼叫方法時,可以通過傳遞給它們的不同個數和型別的引數來決定具體使用哪個方法。pack...

JAVA重寫與過載的區別

重寫的主要優點是能夠定義某個子類特有的特徵 如 public class father public class son extends father 這也叫做多型性,重寫方法只能存在於具有繼承關係中,重寫方法只能重寫父類非私有的方法,當上例中 father類 speak 方法被private時,s...