一、什么是重载
方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。
之所以须要每个同名的方法都用不同的参数就是为了区分,否则会在编译中报错。
例如:
//java
public class OverloadDemo {
void test(){ //test()方法第一次重载,没有参数
System.out.println("无参数");
}
void test(int a){ //test()方法第二次重载,一个整型参数
System.out.println("a: "+a);
}
void test(int a,int b){ //test()方法第三次重载,两个整型参数
System.out.println("a and b: "+a+" "+b);
}
double test(double a){ //test()方法第四次重载,一个双精度型参数
System.out.println("double a: "+a);
}
}
//C#(此为Unity中创建的C#文件)
// Use this for initialization
void Start()
{
Eat("红烧茄子","餐厅二楼");
}
// Update is called once per frame
void Update()
{
}
public void Eat(string what, int num)
{
Debug.Log("我要吃两份炒鸡蛋");
}
public void Eat(string what, string where)
{
Debug.Log("我要去" + where + "吃" + what);
}
public void Eat(string whst)
{
Debug.Log("我要吃炒鸡蛋");
}
无非就是用同一个名字命名多个函数,并且每个函数的参数不同,让每个函数都区分开,可以随时调用任何一个。
萌新们不要有压力,这里并不难,只要理解后也就那样了。
二、重载的作用
-
方法重载的主要好处在于,可以不给一些不同的参数类型或参数个数,写多个函数。多个函数用同一个名字,但参数表,即参数的个数或(和)数据类型可以不同,调用的时候,虽然方法名字相同,但根据参数表可以自动调用对应的函数。我们可以发现在使用很多的方法重载时,在调用的时候,不需要记那么多的方法名称,而是知道了方法的功能就可以直接的给他传递不同的参数,编译器会明确的知道我们调用了哪一个方法。减少了很多判断部分的代码。
-
重载的最直接作用是方便了程序员可以根据不同的参数个数,顺序,类型,自动匹配方法,减少写过个函数名或方法名的重复步骤。
- 引用于什么是重载?重载的作用?
三、什么时候用重载
在我看来,即使重载异界学会,并且可以在编译软件中写出重载,但是最关键的我还是认为在什么时候用重载是最重要的。
百度的回答是:
- 重载是多态的集中体现,在类中,要以统一的方式处理不同类型数据的时候,可以用重载。
- 重写的使用是建立在继承关系上的,子类在继承父类的基础上,增加新的功能,可以用重写。
我认为这些说的有些广泛,让人有一种听不懂的感觉,我的愚见是:
- 在写多个类,并且这些类比较类似,只不过是用的参数不同,或者是需要用的参数在一个类中表达不出来,这种情况我认为用重载在合适不过。
感谢大家的关注,博主收到了,我深刻的体会到了那句话:
你们的关注是我写下去的动力。