首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >java中同一类中的重复方法,在使用Eclipse时进行编译

java中同一类中的重复方法,在使用Eclipse时进行编译
EN

Stack Overflow用户
提问于 2018-06-25 00:02:41
回答 1查看 803关注 0票数 0

下面的代码编译成功,其中在某个类中,我编写了两个具有相同名称和相同类型签名的方法。我使用的是Eclipse Oxygen 4.7.0,我可以看到错误Duplicate method show(int,int)显示为红色。但是当我编译代码时,它被成功编译并得到正确的输出。当我在命令提示符中使用javac运行相同的代码时,它确实没有被编译。

代码语言:javascript
复制
package oops2;

class A6
{
int i, j;

void show(int i, int j)
{
    System.out.println(" i & j : " +i + " " +j);
}

void show(int k, int l)
{
    System.out.println("override or not");
}

void show(String s)

{
    System.out.println("Entered str is "+s);
}
}

public class OverrideNoInherit 
{
public static void main(String[] args) 

{
    // TODO Auto-generated method stub
A6 a = new A6();
a.show(20, 30);
a.show("this is it");   
}

}

在这里,我想提一下,当我在Eclipse上单击run时,我会看到一个弹出窗口

此项目中存在

错误,是否继续启动?

现在,这个错误是不是意味着在同一项目中还有其他类有错误&因此没有编译。我不认为这意味着尽管代码中有错误,但程序会被编译。那么警告和错误之间有什么区别呢?

EN

回答 1

Stack Overflow用户

发布于 2018-06-25 05:54:14

Eclipse总是编译类。包含错误的方法体被替换为抛出包含该类的编译错误的java.lang.Error的方法。这实际上对测试驱动开发很有帮助,测试驱动开发允许您在有编译错误的类上启动测试。即使其他部分当前包含错误,也可以测试可编译的方法。

你这里有个特例。编译器能够编译第一次出现的方法,但后来遇到了无法添加到类中的重复方法。因为第一个方法已经编译,并且当您不顾警告强制启动类时,您会看到成功编译的常规方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51011625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档