Java重载时的参数匹配原则

Java重载(Overload)时的参数匹配原则

1、重载的定义

类中的方法如果有相同的方法名、不同的方法签名,那么这几个方法是可以重载的。

2、什么是方法签名?

方法签名即为方法名+参数列表(参数类型)。
例如:
public void printValue(int value)的方法签名为printValue(int)。

3、参数匹配原则

实例说明
先来看看下面这段代码,重载了方法名为printValue、入参分别为int和double的两个方法,并且调用时的实参传入的是float。

参数匹配原则
运行结果

Print Double Value : 2.0

可以看到传入是实参是float却调用了入参为double的方法。这其实就是Java重载时参数类型匹配的问题。

匹配规则解析
Java遇到这类问题时,总会选择一个赋值规则的精度最小的类型来使用。赋值规则即是即低精度的值可以赋值给高精度或同精度的变量,而高精度的不可以赋值给低精度。

Java基本类型中与精度有关的类型,精度从小到大排列依次是:byte、short、int、long、float、double。上述代码的实参传入的是float,按照赋值规则来看,可以选择float和double两种,上述代码中只重载double的方法,所以选择了double的那个。

当赋值规则匹配出多条重载方法时,会优先选择精度最小的那个。即同时匹配出float和double的话,就选择float。

总结
重载时(Overload)时的参数匹配规则如下:

符合基本类型的赋值规则,即低精度的值可以赋值给高精度或同精度的变量,而高精度的不可以赋值给低精度;
赋值规则匹配出多条时,选精度最小的。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值