java - Java 8 中接口(interface)方法的隐式声明是什么?

标签 java methods interface

我在读我的旧 SCJP 6 书(作者 Kathy Sierra,Bert Bates)提到了

  • 所有interface方法默认都是隐式publicabstract
  • interface 方法不能是static

例如,如果我们声明

interface Car
{
    void bounce();               //no need of public abstract
    void setBounceFactor(int b); //no need of public abstract
}  

编译器看到了什么

interface Car
{
    public abstract void bounce();
    public abstract void setBounceFactor(int b);
}   

但是 从 Java 8 开始,接口(interface)现在可以定义静态方法。 see this article everything-about-java-8
我的问题是,Java 8 中接口(interface)方法的隐式声明是什么?仅public 还是什么都没有?

最佳答案

隐式修饰符的规则没有改变。当没有指定其他修饰符时,使用隐式修饰符。 abstractstaticdefault 都没有指定的情况下是隐含的。并且所有方法始终是public,无论是隐式的还是显式的。请注意,interface 字段始终是隐式的 public static。这也没有改变。

但对于最后的话,我们应该等待 Java 8 的完成。

关于java - Java 8 中接口(interface)方法的隐式声明是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20045759/

相关文章:

java - Java 接口(interface)定义中的语句在什么上下文中执行?

java - Spring Boot 2,如何在ProviderManager中设置eraseCredentialsAfterAuthentication false

ruby-on-rails - 如何制定一种通用方法来检查 Tic-Tac-Toe 中的赢家

Java ORM 建议

java - Java 子类的父类(super class)方法

ruby - 在最后一个方法语句上分配变量

go - 代码行为取决于 switch 运算符中的类型顺序,如何摆脱它?

java - 与外部系统传输数据的技术

java - 设置图标图像 JFrame

java - 使用 slick 和 java 来玩框架