首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >允许公共默认方法的java8接口

允许公共默认方法的java8接口
EN

Stack Overflow用户
提问于 2016-05-11 14:27:00
回答 2查看 600关注 0票数 3

在Java8中,默认方法实现可以同时接受publicdefault修饰符。下面两种方法的主要区别是什么?在哪种情况下哪种类型需要遵循。

代码语言:javascript
复制
default int makeMul(int x, int y) {
    return x * y;
}

public default int makeMul(int x, int y) {
    return x * y;
}
EN

回答 2

Stack Overflow用户

发布于 2016-05-11 14:30:45

默认方法在这里没有什么特别之处。Java总是允许接口方法声明为公共的,即使它们已经隐式地是公共的。

来自JLS 9.4

接口体中的每个方法声明都是隐式公共的(§6.6)。允许为接口中的方法声明冗余地指定公共修饰符,但作为样式问题,不鼓励这样做。

票数 9
EN

Stack Overflow用户

发布于 2016-05-11 14:42:13

正如其他人所建议的,default关键字有两个主要用途:

在Java8之前,它只能用于触发statement.

  • From Java8中的默认情况,允许开发人员在接口内提供已实现的方法(这在以前是不可能的),并在方法的声明(public default int method())中使用default关键字。

据我所知,在一个简单的类中,在方法的声明中使用default关键字根本没有任何区别。

有关接口中default方法用途的详细讨论,请参见Purpose of Default or Defender methods in Java 8

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37154599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档