构造函数重载
例如Person类。private string name;
private int age;
private char gender;
// 以下两个为两个参数的构造函数。
public Person(string name,int age)
{
this.name=name;
this.age=age;
}
public Person(int age,string name)
{
this.name=name;
this.age=age;
}
下面两个为三个参数的构造函数。
public Person(string name,int age,char gender)
{
this.name=name;
this.age=age;
this.gender=gender;
}
public Person(string name,char gender,int age)
{
this.name=name;
this.age=age;
this.gender=gender;
}
上面四个函数就构成了重载。
函数名相同,参数列表不同的函数可构成重载
这里的参数列表不同可以有很多情况。
如果几个参数类型相同,那么即使再交换,也不会构成重载。
就像上面的两个参数的情况,两个参数类型不同,一个string一个int,交换一下位置就可以构成重载。
如果两个都是string类型的话,那就不能构成重载。
有一个判断的方法:
去掉访问修饰符,去掉返回值类型,去掉参数列表里的参数名称(不是类型)
看剩下的是不是一样,一样的话就不能构成重载。
比如下面两个
public static double GetNum(int d1,int d2)
{
return d1+d2;
}
public static int GetNum(int i1,int i2)
{
return i1+i2;
}
去掉上面所说的几个就剩下下面这样
GetNum(int ,int )
GetNum(int,int)
完全一样,所以不能构成重载。
|