我遇到了一个接口实现的示例,我无法理解,因为文本没有给出答案的任何理由,因此希望这里的人可以伸出援手。
给定界面
interface Flyer{
void takeOff();
boolean land();
}
然后假设我有一个实现如下
class Aeroplane implements Flyer{
public void takeOff(){
...
}
//insert code here
return true;
}
}
我得到的要插入的代码是
public boolean land(){
并指出以下内容不正确boolean land(){
当接口将方法定义为
public
时,为什么我必须具有package-private
,肯定地boolean land(){
应该实现该接口,或者我错过了什么? 最佳答案
“接口已将方法定义为package-private”
根据定义,接口中声明的所有方法都是公共的。没有办法解决这个问题。
这个
interface Flyer{
void takeOff();
boolean land();
}
相当于这个
interface Flyer{
public void takeOff();
public boolean land();
}
这是非法的:
interface Flyer{
private void takeOff();
private boolean land();
}
是这样的:
interface Flyer{
protected void takeOff();
protected boolean land();
}
两者都不会编译。