Igo*_*aka 22
接口是100%抽象的,创建接口实例的唯一方法是实例化实现它的类.允许接口final完全没有意义.
编辑这些问题并不像我最初想的那样完全令人愤慨.最终接口是一个不能被其他接口扩展但可以在表面上实现的接口.
我可以想到最终类和最终接口之间的一个区别.扩展类可能会损害其完整性,因为它包含某些状态.扩展接口只会增加操作,并且不会损害实现的完整性,因为接口本身是无状态的.
aio*_*obe 11
不,Java语言规范部分9.1.1.接口修饰符声明如下:
接口声明可以包括接口修饰符.
Run Code Online (Sandbox Code Playgroud)InterfaceModifier: (one of) Annotation public protected private abstract static strictfp
可以看出,该列表不包括final.
如果声明了一个接口,final我想它可能就是这个意思
没有其他接口可以扩展它
这将是一种非感性限制.为什么声明一个类 final 是有用的原因是保护状态不变量,禁止一次覆盖所有方法等等.这些限制都不适用于接口.(没有状态,必须覆盖所有方法.)
没有类可以实现该接口
这显然完全违背了界面的目的.
从Java语言规范(第三版):
9.1.1.1抽象接口
每个接口都是隐含的
abstract.此修饰符已过时,不应在新程序中使用.
所以,abstract+ final有点像矛盾.
| 归档时间: |
|
| 查看次数: |
22788 次 |
| 最近记录: |