【问题标题】:Why compilation fails? [Java]为什么编译失败? [爪哇]
【发布时间】:2016-08-12 06:04:24
【问题描述】:
interface Rideable {

    String getGait();

}

public class Camel implements Rideable {

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

}

为什么编译失败?真不知道为什么会出现编译错误?

【问题讨论】:

  • 编译错误告诉你什么?
  • 你读错了吗?
  • 接口方法默认是公开的。您正在尝试使用包私有方法(更具限制性)来实现该方法。请参阅 this chart 了解公共和包私有之间的比较。

标签: java variables interface scope access-modifiers


【解决方案1】:

接口中的方法默认是public和abstract,数据成员默认是public、static和final作为访问标签。在子类实现中,您没有提到任何修饰符。因此它将具有 默认 访问权限。在提供实现时,您不能限制(提供较少的)访问标签。所以在实现接口的方法时必须提供public作为访问修饰符。

【讨论】:

    【解决方案2】:

    默认情况下,接口方法的修饰符是公共的。因此,当您实施它时。它需要公开。将 public 添加到您的 getGait 方法应该可以解决它

    【讨论】:

      猜你喜欢
      • 2022-07-06
      • 2013-05-14
      • 1970-01-01
      • 1970-01-01
      • 2017-07-29
      • 2016-04-20
      • 2011-08-18
      • 1970-01-01
      相关资源
      最近更新 更多