我正在尝试理解方法重载,但无法理解以下示例中出现以下代码错误的原因
public class OverLoading_OverRiding {
public static void main(String[] args) {
OverLoading_OverRiding o = new OverLoading_OverRiding();
o.sum(5, 5);
}
void sum(int i, long j) { }
void sum(long i, int j) { }
}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
方法 sum(int, long) 对于 OverLoading_OverRiding 类型是不明确的。
当我在同一个示例上执行显式转换时,它可以工作:
o.sum(5, (long)5);
Run Code Online (Sandbox Code Playgroud) 任何人都可以在这里解决我的困惑是我的代码:
byte i = 0;
i++;
System.out.println(i);
Run Code Online (Sandbox Code Playgroud)
结果:1
byte i = 0;
i = i+1;
System.out.println(i);
Run Code Online (Sandbox Code Playgroud)
生成编译时错误:类型不匹配:无法从int转换为byte
当我将其转换为字节时: i = (byte) (i+1);然后愉快地得到结果1
执行这个例子我明白i = i + 1&i ++执行不能同样的操作,所以现在我想知道它们之间究竟有什么区别...... !!!