gpt4 book ai didi

java - Java中的重载方法调用

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:42:18 26 4
gpt4 key购买 nike

假设我有 2 个这样的方法:

1    public int sum(int a, int b) { return a + b; }

2 public double sum(double a, double b) { return a + b; }

如果我调用 sum,像这样:sum(2, 3)第一个方法会被执行

如果我调用 sum,像这样:sum(2.5,3.5)执行第二个方法

但是,如果我这样调用 sum:sum(2.5,3),会执行第二个方法,但不会执行第一个方法,这是为什么?

此外,如果这样调用 sum 是否也会出现这种情况:sum(3,2.5)

最佳答案

编译器会将 int 转换为 double,调用第二个方法 这是因为,int 可以类型转换为 double,但反之则不行。

这将适用于右侧的所有原始类型。 你不能向左移动,除非你显式地进行类型转换,而你并没有这样做。如果你想执行第一个方法,你可以将类型转换为一个 int,这样它就不会执行'扩大成双。 Java 对这些事情非常具体:

因此,总而言之,当您调用方法而不对 int 进行类型转换时,这样做:

 sum(int, double);

实际上是这样翻译的:

 sum(double, double);

为避免这种情况,您必须将 int 类型转换为 int。

关于java - Java中的重载方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34235850/

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