JAVA菜鳥入門篇 Java過載 (十二)

2021-06-28 02:34:00 字數 1850 閱讀 2655

一、過載(overload)

方法的過載簡單說,就是函式或者方法有同樣的名稱,

但是引數列表不相同的情形,這樣的同名不同引數的函式或者方法之間,互相稱之為過載函式或者方法。

呼叫時,會根據不同的參數列選擇對應的方法。

兩同三不同:

- 同乙個類,同乙個方法名

- 不同:引數列表不同(型別、個數、順序不同)

注意事項:

- 只有返回值不同不構成方法的過載

- 只有形參的名字不同,不構成方法的過載

- 與普通方法一樣,構造方法也可以過載

下面是乙個簡單的過載示例,根據形參選擇方法:

class  mymath 

public mymath(int a)

public mymath(int b, int a)

/*** 方法過載

*輸入引數:int double

*返回值型別:int

* @return

*/public int add(int b, double a)

/*** 方法過載

*輸入引數:double int

*返回值型別:int

* @return

*/public int add(double a, int b)

/*** 方法過載

*輸入引數:int int

*返回值型別:int

* @return

*/public int add(int a, int b)

/*** 方法過載

*輸入引數:int int int

*返回值型別:int

* @return

*/public int add(int a, int b,int c) }

public class testoverload

}

二、過載、重寫和多型的區別

override->重寫(=覆蓋)、overload->過載、polymorphism -> 多型

override是重寫(覆蓋)了乙個方法,以實現不同的功能。一般是用於子類在繼承父類時,重寫(重新實現)父類中的方法。

重寫(覆蓋)的規則:

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

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

3、重寫的方法的返回值必須和被重寫的方法的返回一致;

4、重寫的方法所丟擲的異常必須和被重寫方法的所丟擲的異常一致,或者是其子類;

5、被重寫的方法不能為private,否則在其子類中只是新定義了乙個方法,並沒有對其進行重寫。

6、靜態方法不能被重寫為非靜態的方法(會編譯出錯)。

overload是過載,一般是用於在乙個類內實現若干過載的方法,這些方法的名稱相同而引數形式不同。

過載的規則:

1、在使用過載時只能通過相同的方法名、不同的引數形式實現。不同的引數型別可以是不同的引數型別,不同的引數個數,不同的引數順序(引數型別必須不一樣);

2、不能通過訪問許可權、返回型別、丟擲的異常進行過載;

3、方法的異常型別和數目不會對過載造成影響;

多型的概念比較複雜,有多種意義的多型,乙個有趣但不嚴謹的說法是:繼承是子類使用父類的方法,而多型則是父類使用子類的方法,父類物件引用子類物件。

多型的問題我們以後會分析的,現在就簡單涉及哈。

菜鳥入門Java

定義名為number的類,其中有兩個整型資料成員n1和n2,應宣告為私有。編寫構造方法,賦予n1和n2初始值,再為該類定義加 addition 減 subtration 乘 multiplication 除 division 等公有成員方法,分別對兩個成員變數執行加 減 乘 除的運算。在main方法...

java入門篇 18) set集合

a.元素無序 b.元素不重複,如果加入重複元素,add方法會返回false c.可以直接輸出set物件 多型 已經重寫了tostring 方法 d.set判斷兩個物件是否相等用equals方法 1 jdk1.7中,雜湊表 是乙個元素為鍊錶的陣列,綜合了陣列和鍊錶的優點 2 jdk1.8中,雜湊表 是...

java入門篇(28) 多執行緒(補充一)

二 執行緒的例項 三 同步方法 思路 用實現callable介面的方法建立多執行緒,futuretask是callable的子類,有乙個get 方法用來獲取執行緒執行完之後的結果。public class callable text1 implements callable override pub...