在方法的使用過程中,過載,重寫和隱藏是常用到的。下面著重介紹方法的這些使用。
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 中的如下場景 銀行記錄客戶資訊,包括客戶姓名 當前餘額。客戶這一類別當然能夠建立客戶物件 存款 取款以及顯示資訊。銀行需要特殊記錄具有透支許可權的客戶,因此這一類別的客戶要額外記錄透支上限 透支貸款利率...