小编Gau*_*ain的帖子

C#和Java中的方法重载

我在C#中运行了以下方法.

public float Add(float num1, long num2)
{
    Console.WriteLine("method 1");
    return 0;
}
public float Add(int num1, float num2)
{
    Console.WriteLine("method 2");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在这里,如果我打电话Add(1,1),它会给出歧义.现在让我掉的位置float,并long在第一种方法如下:

public float Add(long num1, float num2)
{
    Console.WriteLine("method 1");
    return 0;
}
public float Add(int num1, float num2)
{
    Console.WriteLine("method 2");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

现在它打印"方法2"作为输出.第一种情况模棱两可的原因是什么?

如果我在我的代码中编写以下两种方法:

public float Add(long num1, long num2)
{
    Console.WriteLine("method 1"); 
    return 0;
}
public float Add(int num1, float num2)
{
    Console.WriteLine("method 2");
    return …
Run Code Online (Sandbox Code Playgroud)

c# java oop overloading

5
推荐指数
1
解决办法
647
查看次数

标签 统计

c# ×1

java ×1

oop ×1

overloading ×1