2016-04-19 78 views
-2
interface Rideable { 

    String getGait(); 

} 

public class Camel implements Rideable { 

    String getGait() { return " mph, lope"; } 

} 

为什么编译失败?我真的不知道为什么编译错误?为什么编译失败? [Java]

+0

编译错误告诉你什么? – Reimeus

+0

你读过错误了吗? – SLaks

+0

默认情况下,接口方法是公共的。你正试图用一个包私有方法来实现这个方法(这是更具限制性的)。请参阅[此图表](http://stackoverflow.com/a/33627846/276052)以了解公共和私有包之间的比较。 – aioobe

回答

2

默认情况下,接口方法的修饰符是公共的。所以当你实现它。它需要公开。添加公开你的getGait方法应该解决它

1

方法在界面在默认情况下公众和抽象和数据成员默认情况下公共,静态和最终作为访问标签。在子类实现中,你没有提到任何修饰符。所以它会有默认的访问权限。在给出实现的同时,您不能限制(提供更少的)访问标签。所以你必须在实现接口的方法时提供public作为访问修饰符。