class Output {
public static void main(String arg[]) {
System.out.println("A"+new Output());
}
public String toString() {
System.out.print("B");
return "C";
}
}
为什么输出结果是BAC而不是ABC,求解
public static void main(String arg[]) {
System.out.println("A"+new Output());
}
public String toString() {
System.out.print("B");
return "C";
}
}
为什么输出结果是BAC而不是ABC,求解
这里,相当于:
System.out.println("A" + new Output().toString());
只有new Output().toString()执行完了,上面这个System.out.println才可能知道要打印的是"A" + "C",而不是别的,而一旦new Output().toString()被执行完了,“B”就已经被打印完了。