重载定义
首先,重载,从简单说,就是函数或者方法有相同的函数名,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者重载方法,例子如下:
重载但从定义上来说是很好理解的,我们接着说下一个问题,只有返回值不同的函数算不算重载呢?这个简单 我们在IDEA里面试一下就能知道结果,自己去试一下哦,虽然很简单
测试——只有返回值类型不同是不算重载的
可以看出,我只修改了返回值类型,IDEA识别到错误,是爆红的,所以说,只有返回值不同是不能算作重载的,但是为什么呢,重载到底是根据什么判断的,接着往下看
Java中,有一个名叫方法签名的东西,它的定义是这样的
Definition: Two of the components of a method declaration comprise the method signature—the method’s name and the parameter types.
大概意思是,方法签名有两部分组成——方法名和参数列表
我上面的函数的方法签名就是 hand(int a,int b) 而简单来说,JVM就是通过方法签名来决定去调用哪一个方法的,而从方法签名的组成部分来说,返回类型并不在方法签名中,所以当一个类中出现方法名参数列表相同,只有返回类型不同时,JVM无法根据方法签名来确定该调用哪一个方法,所以会报错。
而返回类型不能作为方法签名也是因为程序员在调用函数时只会写方法名和参数,还是无法分辨。