gpt4 book ai didi

java - 重载中的数字类型

转载 作者:行者123 更新时间:2023-12-03 01:54:40 25 4
gpt4 key购买 nike

有两个方法都是重载方法

int add(int a, int b)

还有

int add(long a, long b)

如果我打电话

add(3,4)

会调用哪个方法?

最佳答案

int add(int a, int b) 将被调用,因为 34 都是 int< 类型,因此编译器更喜欢不需要加宽强制转换的方法。由于存在参数类型与参数匹配的方法,因此选择该方法。

如果至少有一个参数的类型为long

int add(long a, long b)

将被选择,因为从longint的转换需要显式完成。

add(3, 4L); // calls add(long, long)
add(3, (int) 4L); // calls add(int, int) (explicit cast long -> int)

一般来说,您可以选择在这种情况下使用最多位的参数类型,并根据以下信息选择方法:

如果它是long,则将调用add(long, long)。否则使用add(int, int)

以下调用使用add(int, int)

add('a', 'b'); // most bits: char (assignable to int)
add((short)1, (byte)2); // most bits: short (assignable to int)

以下调用使用add(long, long)

add('a', (long)'b'); // most bits: long (not assignable to int)
add((long)1, (byte)2); // most bits: long (not assignable to int)

关于java - 重载中的数字类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38930605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com