方法過載詳解

2021-07-13 20:03:12 字數 746 閱讀 6883

什麼是方法過載?

我這有乙個需求,寫乙個計算2個數和的方法,這是乙個很簡單的方法如下:

public int add(int a,int b)

public double show(double a ,double b)

public string show(string a ,string b)

這段**中定義了三個方法,但是3個方法的名字都一樣的,卻能通過編譯,這就是方法的過載,個人理解是能幫某些特性功能的方法組合在一起,增加**的可讀。

過載需要滿足什麼條件?

1、方法名一致

2、引數列表不一樣(如果上面這段**引數型別不一樣),

如果滿足以上條件,你的方法就已經算是過載了,那麼我們來練習下,看看下面這段**

public void show(string a)

public void show(object a)

如果我呼叫方法傳的是null了?show(null);會呼叫誰?報錯?還是?這裡會呼叫「我是stirng」這是為什麼?

分析:兩種都是引用資料型別傳遞null理論上是都可以執行,但是jvm不知道執行誰,那麼為什麼卻有執行了string了?因為string 繼承了object,jvm認為string比object更加準確。

總結:1、方法名必須相同

2、方法的引數必須不同(引數型別和個數)

3、如果引數個數不同,就不管引數型別

4、如果個數相同,就管引數型別

5、方法的返回型別和修飾符可以同

rudy 過載方法 詳解

在子類裡,我們可以通過過載父類方法來改變實體的行為.ruby class human def identify print i m a person.n end def train toll age if age 12 print reduced fare.n else print normal f...

方法過載,方法重寫

方法過載 前提 必須在同一類中!才能過載 特點 這幾個方法要在乙個類中 這幾個方法名字要一樣 這幾個方法引數項不同 引數型別不同 主要就是 引數列表不能相同 順序可以不同 方法的重寫 前提是繼承關係 訪問修飾符要比繼承之前的大,返回值型別相同,方法名相同,引數列表相同,但方法體不同,稱為方法的重寫 ...

方法過載 方法重寫

同乙個類中,方法名一致,但引數 數量 型別 順序 不一樣。數量 public a 與public a int a 型別 public a int a 與public a string a 順序 public a string a,int a 與public a int a,string a 子類繼承...