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關鍵字。說明什么?是靜態(tài)常量!
成員方法也是一樣: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內部可以有成員,但必須都是不依賴于對象實例而存在的。
所以套用到內部類來說,靜態(tài)的套嵌類(nested class)就是允許的,因為它是static的。也不像普通內部類一樣維護著一個指向外部類對象的指針。
簡單來說,interface里不是什么都不能有。而是只能有static或者abstract的成員。更準確地說就是不依賴對象實例而存在的成員。
如果要問有什么用,一個什么都不能實現的interface里面,還能實現幾個內部套嵌類,這不應該是廣大程序猿的福音嗎?
總結
以上是生活随笔為你收集整理的java 内部接口 内部类_Java的接口中中添加内部类,甚至实现外围接口的内部类,意义是什么?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 产品经理是否应该给 UI 设计师的设计稿
- 下一篇: 程序的加载和执行(一)——《x86汇编语