美文网首页
Java重载(Overload)时的参数匹配原则

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

作者: 寒_蝉 | 来源:发表于2019-05-04 17:56 被阅读0次

    重载的定义

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

    什么是方法签名?

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

    参数匹配原则

    实例说明

    先来看看下面这段代码,重载了方法名为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)时的参数匹配规则如下:

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

    相关文章

      网友评论

          本文标题:Java重载(Overload)时的参数匹配原则

          本文链接:https://www.haomeiwen.com/subject/rzkfoqtx.html