![](/img/trans.png)
[英]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.