针对楼主这个问题,我很好奇而且不是很懂只有问度娘,下面是度娘的答案。
JAVA有运算符重载吗?
如果没有,可是为什么String s=s1+s2;却可以?
这不是运算符重载,而是方法重载,JAVA中是可以方法重载的.
此句真正实现是用JAVA 中的APPEND方法,重载的也是APPEND方法,并不是运算符.
请把下面的程序编译后再反编译:
String a = "a";
String b = "b";
String c = a + b;
得到的结果是:
String a = "a";
String b = "b";
String c = (new StringBuilder(String.valueOf(a))).append(b).toString();
请把下面的程序编译后再反编译:
String a = "a";
String b = "b";
String c = a + b;
String d = c + 1;
得到的结果是:
String a = "a";
String b = "b";
String c = (new StringBuilder(String.valueOf(a))).append(b).toString();
String d = (new StringBuilder(String.valueOf(c))).append(1).toString();
所以,重载的是 append() 方法。
最后还啰嗦几句,楼主应该把问题说完全点,其实沙发回答的是正确的。 |