[英]Method overloading in java regarding arguments with int/long and String/object
[英]Java overloading int to long
參考Java 重載 - long 和 float ,其中提到了 JLS #15 中的規則
以下規則定義了原始類型之間的直接超類型關系:
雙 >1 浮點數
浮動 >1 長
長 >1 整數
整數 >1 個字符
int >1 短
短 >1 字節
其中“S > 1 T”表示“T 是 S 的直接子類型”,根據本節上方的 JLS #4.10。
為什么下面的代碼打印浮動?
int q = 2;
a(q);
void b(long a) {
System.out.println("long");
}
void a(float a) {
System.out.println("float");
}
只有一種名為a
方法接受浮點參數,
Java 支持從float
到int
關系(直接超類型關系)(在中間使用long
):
浮動 > 長 - > 整數
如果重命名方法b
到a
,你將與執行方法long
如你預期
void a(long a) {
System.out.println("long");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.