Java @重写会导致涉及接口、抽象类和具体类的类层次结构出现问题
我的课程如下Java @重写会导致涉及接口、抽象类和具体类的类层次结构出现问题,java,Java,我的课程如下 public interface A { public void doSomething(); } public abstract class B implements A { public void doOneMoreThing() { // Do one more thing } } public class C extends B { @Override <---- Causes error
public interface A {
public void doSomething();
}
public abstract class B implements A {
public void doOneMoreThing() {
// Do one more thing
}
}
public class C extends B {
@Override <---- Causes error
public void doSomething() {
// Do something
}
}
公共接口A{
公共无效剂量();
}
公共抽象类B实现了{
公共空间毁灭性事件{
//再做一件事
}
}
公共类C扩展到B{
@覆盖您应该使用
@凌驾
您编写了@Overrides,然后它就不再工作了;)您应该使用
@凌驾
您编写了@Overrides,然后它就不再工作了;)检查您是否正在使用JDK 1.6,并且您的-source和-target参数(如果已定义)设置为1.6。在Java 6中@Override的语义已更改。
在Java5中,@Override不允许重写接口方法(仅限于超类方法),但在Java6中允许@Override(以及u21以后的JDK5的最新版本)
请参见检查您是否正在使用JDK1.6,以及您的-source和-target参数(如果已定义)是否设置为1.6。Java 6中@Override的语义已更改。
在Java5中,@Override不允许重写接口方法(仅限于超类方法),但在Java6中允许@Override(以及u21以后的JDK5的最新版本)
请参见我使用eclipse,因此在这方面没有犯任何错误。我理解@Override的含义。如果您使用java 1.6,则使用chcek。@接口的Override仅在1.6及以上版本可用。我使用eclipse,因此在这方面没有犯任何错误。我理解@Override的含义。如果您使用java 1.6,则使用chcek。@接口的Override是仅适用于1.6及以上版本。我使用的是1.5,谢谢。实际上,将source和target设置为1.5不会产生此错误。JDK 1.5的最新更新版本也不会产生此错误。只有JDK 1.5.Plus的较旧版本,如果-source 1.6-target 1.6
起作用,则意味着他使用的是JDK 1.6或更高版本,在这种情况下,没有理由specify这些参数,会有吗?@Kevin Bourrillion-我使用JDK 6,并且经常不经意地将项目设置为-source/-target 1.5(例如,当将maven项目导入IDEA时,我的公共父pom将source定义为1.5)所以,这就是这种情况下的解决办法。我没有考虑到他实际上在使用JDK 1.5,这也不是我文章的目的。考虑到答案解决了OP的问题,并且答案在使用1.6的典型情况下是有效的,我认为你的否决票是严厉的。我知道关于否决票有不同的理念。我倾向于当我们不怕在不太好/有用的答案上使用这个概念时,相信它更有用(与此相反,答案必须是坏的)。但是,您的新编辑要好得多,所以再见downvote.Precision。我使用的是1.5,谢谢。实际上,将source和target设置为1.5不会产生此错误。JDK 1.5的最新更新版本也不会产生此错误。只有JDK 1.5.Plus的旧版本,如果-source 1.6-target 1.6
起作用,这意味着他使用的是JDK 1.6或更高版本,其中如果没有理由指定这些参数,会吗?@Kevin Bourrillion-我使用JDK 6,经常会无意中将项目设置为-source/-target 1.5(例如,将maven项目导入IDEA时,我的公共父级pom将source定义为1.5)所以,这就是这种情况下的解决办法。我没有考虑到他实际上在使用JDK 1.5,这也不是我文章的目的。考虑到答案解决了OP的问题,并且答案在使用1.6的典型情况下是有效的,我认为你的否决票是严厉的。我知道关于否决票有不同的理念。我倾向于当我们不怕在不太好/有用的答案上使用这个概念时,相信它更有用(与此相反,答案必须是坏的)。但是,你的新编辑要好得多,所以再见下一票。