许多Java的初学者可能都在思考一个问题:为什么在区分类的重载方法的时候,我们只能以入参作为标准,而不能用返回值作为标准。
我们现在来讨论一下用返回值来区分重载方法的可行性。
比如下面两个方法:
void fun();
int fun();
long fun();
如果编译器可以根据语境来判断执行哪一个方法的话,那么当 执行 int i = fun(); 的时候,我们很容易判断出来,应该调用第二个重载方法。
但是,当我们 执行单独调用fun(),而不把返回值赋值给任何变量的时候呢?就像: 直接执行 fun(); 这个时候,我们就不知道调用哪个方法了,所以根据返回值来区分重载方法是行不通的。