java 内部接口 内部类_Java的接口中中添加内部类,甚至实现外围接口的内部类,意义是什么?...
首先开篇第一句:An interface declaration introduces a new reference type whose members are classes, interfaces, constants, and abstract methods. This type has no implementation, but... ...
所以作者这句“Normally, you can't put any code inside an interface”注意是"Normally"。作者的本意应该是:内部成员的实现implementation不放在interface里。并不是说里面什么都不能有。什么都没有还怎么玩?
接着往下看,接下来说“字段”:Every field declaration in the body of an interface is implicitly public, static, and final.
interface里也是可以声明字段的。只不过都隐含public static final关键字。说明什么?是静态常量!
成员方法也是一样:Every method declaration in the body of an interface is implicitly public (§6.6).
Every method declaration in the body of an interface is implicitly abstract,
只能是抽象方法。
从头到尾,interface都在做一件事:去实例化。也就是interface内部可以有成员,但必须都是不依赖于对象实例而存在的。
所以套用到内部类来说,静态的套嵌类(nested class)就是允许的,因为它是static的。也不像普通内部类一样维护着一个指向外部类对象的指针。
简单来说,interface里不是什么都不能有。而是只能有static或者abstract的成员。更准确地说就是不依赖对象实例而存在的成员。
如果要问有什么用,一个什么都不能实现的interface里面,还能实现几个内部套嵌类,这不应该是广大程序猿的福音吗?
总结
以上是生活随笔为你收集整理的java 内部接口 内部类_Java的接口中中添加内部类,甚至实现外围接口的内部类,意义是什么?...的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 产品经理是否应该给 UI 设计师的设计稿
- 下一篇: zabbix api java_zabb