java为什么不能根据返回值重载?
2017-04-30 16:30
393 查看
我以前对Java中为什么不能根据返回值进行重载,而只能根据方法的参数进行重载非常不理解。比如void f(){}和int f(){},虽然他们有同样的名字,但是很容易区分。如果我这样做,肯定是没问题的:
int a=int f(){};
因为编译器此时能根据上下文语境明确判断出含义。然而,我们也可能调用一个方法,同时忽略返回值。我们通常把这称为“为它的副作用去调用一个方法”,因为我们并不关心他的返回值,而只是方法调用的效果。so,如果我们像下面这样调用方法f().那么编译器该如何判断此方法的具体调用方式呢?因此,你明白了吧?不能根据返回值去重载方法
int a=int f(){};
因为编译器此时能根据上下文语境明确判断出含义。然而,我们也可能调用一个方法,同时忽略返回值。我们通常把这称为“为它的副作用去调用一个方法”,因为我们并不关心他的返回值,而只是方法调用的效果。so,如果我们像下面这样调用方法f().那么编译器该如何判断此方法的具体调用方式呢?因此,你明白了吧?不能根据返回值去重载方法
相关文章推荐
- java为什么不能根据返回值重载?
- Java - 为什么不能根据返回类型来区分重载?
- 关于java重载为什么不能用不同返回值区分
- 在C#、Java中,为什么不能用[返回值]区别重载方法?
- 为什么函数不能根据返回类型来区分重载?
- 为什么不能用返回值类型来判断方法是否重载呢?
- 为什么不能根据返回类型区分重载?
- 返回值为什么不能用来区分重载?
- 18.1.2 选言推理:为什么重载策略不能包含返回值
- 为什么不能以返回值区分重载方法
- 为什么不能通过返回值类型区分重载?
- 为什么不能根据返回类型区分重载?
- 返回值为什么不能作为重载的一个条件
- 18.1.2 选言推理:为什么重载策略不能包含返回值
- 为何不能通过返回值来区分重载方法
- 一些java类中为什么需要重载 serialVersionUID 属性
- Java网络编程(3):为什么不能直接通过IP访问网站
- java是否允许返回值类型不同的重载overload或者覆盖override
- Java 编程下 IO 中的输入流的 read() 方法返回值为什么是 int 值(科普一下吧,某个大侠写的)
- 在C++中,为什么构造函数不能有返回值?