我遇到了一个接口实现的示例,我无法理解,因为文本没有给出答案的任何理由,因此希望这里的人可以伸出援手。

给定界面

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();
}


两者都不会编译。

09-28 02:20