高分悬赏:Java语言为什么不能靠函数的返回的不同构成重载,必须要通过参数的不同
重载的本质就是参数类型或者参数个数不同的,定义的时候按需要定义参数个数就可以了呀。
不同的返回类型或者反回值吗,从你自身角度去思考觉得它有意义吗?可以返回object类型进行二次拆箱操作。不然就要很多个大致相同荣的方法,增加维护量。
打个比方,一个家庭有一对双胞胎,都是男的,你还给他们取了个相同的名字。有一天,你想叫双胞胎其中的一个去帮你买点东西,
结果他们两个也不知道你叫的是他们两个中的哪一个,就都去买了,是不是东西就买多了呢?本来你只想要一份,结果却买了两份;
如果是龙凤胎,就算你给他们取了相同的名字,但总有性别之分吧,你只要说一下,让男的还是女的去帮你做事,是不是就不会出现重复的东西。
再者说,java根本就编译通不过
一句话:通过函数参数 在你的代码调用之前就知道调用的是否正确。
如果通过返回值区分 那只有等代码执行了 返回了 才能知道调用的是不是对。
很明显这个逻辑是错的。
在java的表达式中,接收返回值不是必要部分,调用有返回值得方法、可以不接收参数,当不接收返回值时,语法和编译不会报错,程序可以正常运行,接收返回值不是表达式的充分必要条件,因此返回值不能作为判断重载方法不同的条件;
而且对于返回值,可以用父类\接口类 去接收(父类的引用指向子类的实例,最常见的是构造方法,分层和面向接口编程时,通常会用创建接口引用,为其注入实现类的实例),当一个父类\接口有多个子类\实现类时,返回值也无法区分;