C 中方法過載

2021-08-14 07:07:35 字數 1688 閱讀 2235

在方法的使用過程中,過載,重寫和隱藏是常用到的。下面著重介紹方法的這些使用。

1、過載

過載是方法名不變,引數列表(引數型別或個數)不同的方法體現。

注意:返回值可以相同也可以不同。當引數個數相同而引數型別不同的時候,可以考慮使用泛型,提高**的復用性。

下面給出示例:

public class  func

// 2、帶乙個 int 型別引數的自定義構造

public func(int a)

// 3、 與 2 不同,帶乙個 string 型別引數的自定義構造方法

public func(string a)

// 4、與 2,3都不同,有兩個引數

public func(int a,int b)

// 注意下面這種情況,光是返回值不同不是方法過載,編譯器也會報錯,所以一定要引數列表不同

public int getnum()

public void getnum(int a)

}

2、 重寫

重寫用於子類重寫父類的方法(虛方法或是抽象方法),當使用子類的例項物件賦值給父類引用的時候,呼叫方法會呼叫子類重寫之後的方法。

注意:重寫必須遵守的規則

(1)、使用 override 修飾,放在 型別宣告的前面,只能重寫虛方法(virtual)或抽象方法(abstract);

(2)、重寫的方法除了方法體可以不同外,方法名,返回值,引數列表必須相同。

下面給出示例:

public class  baseclass

}public class class1:baseclass

}public abstract class abstractclass

) public abstract int getnum();

}public class class2:abstractclass

}// 呼叫重寫方法

// 子類例項化的物件賦值給父類的引用

baseclass myclass = new class1();

// 呼叫方法時,會呼叫子類重寫後的方法

int a = myclass.getnum(); // a = 1

// 抽象類不能例項化,可以用子類例項化的物件賦值給該類的引用

abstractclass myclass1 = new class2();

int b = myclass1.getnum(); // b = 0

3、隱藏

隱藏也是應用於父類和子類,當父類的方法不是虛方法或抽象方法時,子類可以隱藏父類的方法,豐富物件導向的多型性。

注意:

(1)、隱藏方法使用 new 關鍵字,在型別前面宣告;

(2)、方法名和引數列表必須相同,返回值和方法體可以不同;

(3)、父類引用指向子類的例項物件時,呼叫方法會呼叫父類的方法,而不是子類的方法。

public class newclass

}public class class3:newclass

}newclass cc = new class3();

// 當我不關心或不清楚返回值的型別時,可以使用 var 宣告型別,不過必須要初始化,否則編譯器推斷不出型別

var c = cc.getmynum(); // c = 0

java中方法過載

方法的構造 就是在做乙個方法的宣告 public 修飾符,表示公共的。用於表示訪問許可權的。static 修飾符,表示靜態的。方法被呼叫的時候寫法不同 static 非static void 該方法的返回值。返回值 就表示方法結束後,返回給方法的呼叫處的數值的型別。基本資料型別和引用資料型別。如果方...

C 中方法過載與方法重寫區別

方法過載 在乙個類中存在方法名相同 引數列表不同 引數個數或者引數型別不同 返回值型別可以不相同,呼叫的時候根據引數列表的不同來正確呼叫。class program 3 5 7三個整數之和為,3.1 5.2兩個浮點型數之和為 test.add 3,5 test.add 3,5,7 test.add ...

C 基礎 類繼承中方法過載

c 基礎 類繼承中方法過載 一 前言 二 過載方法及虛函式 我們討論 c primer plus 中的如下場景 銀行記錄客戶資訊,包括客戶姓名 當前餘額。客戶這一類別當然能夠建立客戶物件 存款 取款以及顯示資訊。銀行需要特殊記錄具有透支許可權的客戶,因此這一類別的客戶要額外記錄透支上限 透支貸款利率...