为什么不同返回类型不算方法重载?
要回答这个问题,首先要了解一点前置内容,方法签名。 方法签名是由:方法名称 + 参数类型 + 参数个数组成的一个唯一值,这个唯一值就是方法签名,而 JVM(Java 虚拟机)就是通过这个方法签名来决定调用哪个方法的。 从方法签名的组成规则我们可以看出,方法的返回类型不是方法签名的组成部分,所以当同一个类中出现了多个方法名和参数相同,但返回值类型不同的方法时,JVM 就没办法通过方法签名来判断到底要调用哪个方法了,如下图所示:
那为什么返回类型不能做为方法签名的一部分呢? 原因其实很简单,试想一下,如果方法的返回类型也作为方法签名的一部分,那么当程序员写了一个代码去调用“重载”的方法时,JVM 就不能分辨要调用哪个方法了,如下代码所示:
像以上情况,JVM 就推断不出来要调用哪个方法了,所以方法的返回类型不能作为方法签名的一部分。
C++函数重载(名字相同,参数类型、个数、顺序不一样)_c++函数重载可以用函数的不同参数数量实现吗_别忘了坚持的博客-CSDN博客
总结:
-函数重载是C++对C的一个重要升级
-函数重载需要在同一个作用域中
-函数重载通过函数参数列表区分不同的同名函数
-extern关键字能够实现C和C++的相互调用
-编译方式决定符号表中的函数名的最终目标名
同名不同命之函数的重载
https://blog.csdn.net/m0_46376834/article/details/117121553
函数名重载:
函数名相同,
但是, 函数的参数(形参)绝不相同:
1)参数个数不同
2)或参数个数相同, 但是参数的类型不同
只有返回类型不同,不能构成函数重载
只有形参变量名不同, 不能构成函数重载.
注意: C语言不支持函数重载
c++同名函数----重载、隐藏、覆盖
https://blog.csdn.net/weixin_41537785/article/details/81904896