當我編譯此代碼:的Java收到錯誤執行接口方法較弱的訪問
interface Rideable {
String getGait();
}
public class Camel implements Rideable {
int x = 2;
public static void main(String[] args) {
new Camel().go(8);
}
void go(int speed) {
System.out.println((++speed * x++)
+ this.getGait());
}
String getGait() {
return " mph, lope";
}
}
我收到以下錯誤:
Camel.java:13: error: getGait() in Camel cannot implement getGait() in Rideable
String getGait() {
^
attempting to assign weaker access privileges; was public
1 error
在考慮界面如何被聲明的getGait方法上市?
方法隱含'public'。這就是語言的工作原理。對於實現此接口的類,它必須明確地說明方法的訪問修飾符。在你的情況下,'String getGait()'是'protected',因此是錯誤信息。 – mre
這個錯誤是不言自明的,你需要在類Camel中公開getGait()。 – Shark
@mre ... getGait方法實際上具有默認可見性... package-private ...不受保護。 –