函数重定义在java中的合法性?

时间:2013-12-03 17:28:01

标签: java

Eclipse允许我通过在“工作空间错误”对话框中按下继续按钮来运行它:

class MainClass
{
    public static void foo()
    {
    }

    public static void foo()
    {
    }

    public static void main (String[] args)
    {
    }
}

enter image description here

这是否意味着功能重新定义是合法的?

4 个答案:

答案 0 :(得分:4)

Eclipse允许您运行无法编译的代码。它用throw new Error("whatever the compilation error was");取代了这样的代码。我认为这是一个非常糟糕(破碎如设计)的功能,但其他人喜欢它。

在你的情况下这是有效的,因为你还是不使用这个功能。

答案 1 :(得分:2)

这是非法的,方法签名必须有所不同

答案 2 :(得分:2)

禁止两种方法具有相同的签名,这将无法编译。

答案 3 :(得分:0)

再次检查,您应该收到以下错误

Duplicate method foo() in type MainClass