为什么不能以返回值区分重载方法

时间:2022-10-23 00:29:00

许多Java的初学者可能都在思考一个问题:为什么在区分类的重载方法的时候,我们只能以入参作为标准,而不能用返回值作为标准。

我们现在来讨论一下用返回值来区分重载方法的可行性。

比如下面两个方法:

void fun();

int fun();

long fun();

 

如果编译器可以根据语境来判断执行哪一个方法的话,那么当  执行  int i = fun(); 的时候,我们很容易判断出来,应该调用第二个重载方法。

但是,当我们 执行单独调用fun(),而不把返回值赋值给任何变量的时候呢?就像:  直接执行 fun(); 这个时候,我们就不知道调用哪个方法了,所以根据返回值来区分重载方法是行不通的。