为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我们不能对接口中的方法一起使用默认访问修饰符和抽象关键字?

为什么我们不能对接口中的方法一起使用默认访问修饰符和抽象关键字?

森栏 2021-10-28 09:59:48
我只是想知道为什么我们不能在界面中将 default 和 abstract 关键字放在一起?一个接口允许使用 public 和 abstract ,当涉及到同一个包时,默认是 public 的。那么,为什么public abstract不default abstract?注意: 这适用于较低版本的 java 7
查看完整描述

3 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

关键字是互斥的。该JLS说:

它是一个编译时间错误,如果一个接口方法声明具有一个以上的关键字的abstractdefaultstatic

关于abstract的关键字:

如果接口方法声明是abstract(显式或隐式)并且具有用于其主体的块,则这是编译时错误 。

但是对于带有关键字的方法,default需要

它的主体总是由一个块表示,它为任何实现接口的类提供默认实现而不覆盖方法。

总结:

  • abstract方法没有体

  • 一个default方法提供了一个主体

不可能同时拥有一个和另一个。


查看完整回答
反对 回复 2021-10-28
  • 3 回答
  • 0 关注
  • 142 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信