int add(int a,int b){
System.out.println("方法一");
return a + b;
}
/**
*
* @param a
* @param b
* @param c
* @return
*/
long add(int a,int b ,String c){
System.out.println("方法四");
return a + b + Integer.parseInt(c);
不是重载 重载返回值类型相同
对的,重载要求返回值的类型要一样。楼主可以去看下《thinking in java》
只有返回值不同,java编译器根本不给编译,不能编译的代码,是什么没有讨论的必要。
为什么仅仅返回值不同的两个函数,java不给编译。
考虑如下代码
int a() { reuturn 1; }
String a() { reuturn "1"; }
如下调用
a(); //请问编译器怎么知道你要调用哪个
重载表示方法名一样,只是函数的参数不一样。与修饰符和返回值没有关系
是的,同名函数的参数列表,参数个数和参数类型不同时,就是重载,可以有不同的返回值类型