Java 实现的类是否可以在其父接口中声明方法?
我在Eclipse中尝试了这个,它显示了一个编译错误。然而,在在线IDE中尝试同样的方法没有显示错误。这就是混乱的原因Java 实现的类是否可以在其父接口中声明方法?,java,interface,Java,Interface,我在Eclipse中尝试了这个,它显示了一个编译错误。然而,在在线IDE中尝试同样的方法没有显示错误。这就是混乱的原因 interface Iclass{ void print(); void hey(); } class sdlfkajl implements Iclass { public void print(){ System.out.println("Impl class"); } public void hey(){ System.out.pr
interface Iclass{
void print();
void hey();
}
class sdlfkajl implements Iclass {
public void print(){
System.out.println("Impl class");
}
public void hey(){
System.out.println("Hey!");
}
public void extra(){
System.out.println("Should I be here?");
}
}
显示的错误是该类不能有未在接口中声明的方法。建议工具提示说我也应该在界面中声明这个方法
实现的类是否可以在其父接口中声明方法
是的,它可以
我不知道你的情况有什么问题,但不是这个。我不知道你有什么错误,但你可以向接口的实现中添加额外的方法。一个
实现的类
当然可以在其接口
中声明方法。但是必须实现在接口中声明的方法,除非声明为抽象,我能看到的唯一错误是接口和实现在不同的包中。您的界面具有默认可见性(也称为“包专用”),这意味着它只能在同一个包中看到(和使用)。尝试将接口声明为公共接口
public interface Iclass {
}
除此之外,在类中包含接口中未指定的方法在Java中是完全合法的。接口是契约,是您必须实现的方法。但这并不局限于这些代码。您的代码中没有错误
您可能将警告误认为错误-IntelliJ可以设置为将上面的代码标记为警告
您可能还设置了编译失败的警告
所以请检查您的IDE设置 我试图重现相同的场景,但在我这一阶段效果很好。请尝试清理代码,这可能会奏效。这可能是一个接口可见性问题允许您在类中添加未在该类接口中声明的方法
我经常使用Eclipse,我认为您遇到的问题必须处理Eclipse本身,而不是您的代码。有时,当您更改并保存界面时,Eclipse会在进行更改的行中显示错误
尝试删除整个已更改的方法,然后重新键入或粘贴代码。这将使Eclipse刷新相关的工作空间并删除错误。那么错误是什么?我们应该猜猜吗?顺便说一句,对你的问题的快速回答是肯定的。它应该有用。代码没有错误的概念。