在同一个类中,方法名相同,参数类型或个数不同,即构成了方法的重载。
为什么要使用重载?
(1)对创建者来说,不用为方法取名而绞尽脑汁。
(2)对使用者来说,不用为记方法名而浪费精力。
例如:在员工类中,有一个计算工资的方法,对于A类人员没有项目提成,对于B类人员有项目提成。
A类人员工资 = 底薪 + 工龄*工龄工资
B类人员工资 = 底薪+工龄*工龄工资 + 项目提成(项目总金额 * 0.1)
class Employee
{
public string EmpName { get; set; }
//底薪 + 工龄*工龄工资(没有项目回款的时候)
/// <summary>
/// 没有项目提成的算法
/// </summary>
/// <param name="baseSalary">底薪</param>
/// <param name="year">工作年限</param>
/// <param name="yearMoney">工龄工资</param>
/// <returns></returns>
public double GetAllSalary(double baseSalary, int year, double yearMoney)
{
return baseSalary + year * yearMoney;
}
//底薪 + 工龄*工龄工资 + 项目提成(项目总金额 *0.1)(有项目回款的时候)
/// <summary>
/// 有项目提成的算法
/// </summary>
/// <param name="baseSalary">底薪</param>
/// <param name="year">工作年限</param>
/// <param name="yearMoney">工龄工资</param>
/// <param name="itemMoney">项目总金额</param>
/// <returns></returns>
public double GetAllSalary(double baseSalary, int year, double yearMoney, double itemMoney)
{
return baseSalary + year * yearMoney + itemMoney * 0.1;
}
}
对重载方法的调用:
Employee emp1 = new Employee();
Console.WriteLine("工资:" + emp1.GetAllSalary(3000, 5, 100));
Employee emp2 = new Employee();
Console.WriteLine("工资:" + emp2.GetAllSalary(3000, 5, 100,10000));
网友评论