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"。作者的本意應(yīng)該是:內(nèi)部成員的實(shí)現(xiàn)implementation不放在interface里。并不是說里面什么都不能有。什么都沒有還怎么玩?
接著往下看,接下來說“字段”:Every field declaration in the body of an interface is implicitly public, static, and final.
interface里也是可以聲明字段的。只不過都隱含public static final關(guān)鍵字。說明什么?是靜態(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都在做一件事:去實(shí)例化。也就是interface內(nèi)部可以有成員,但必須都是不依賴于對象實(shí)例而存在的。
所以套用到內(nèi)部類來說,靜態(tài)的套嵌類(nested class)就是允許的,因?yàn)樗莝tatic的。也不像普通內(nèi)部類一樣維護(hù)著一個(gè)指向外部類對象的指針。
簡單來說,interface里不是什么都不能有。而是只能有static或者abstract的成員。更準(zhǔn)確地說就是不依賴對象實(shí)例而存在的成員。
如果要問有什么用,一個(gè)什么都不能實(shí)現(xiàn)的interface里面,還能實(shí)現(xiàn)幾個(gè)內(nèi)部套嵌類,這不應(yīng)該是廣大程序猿的福音嗎?
總結(jié)
以上是生活随笔為你收集整理的java 内部接口 内部类_Java的接口中中添加内部类,甚至实现外围接口的内部类,意义是什么?...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 产品经理是否应该给 UI 设计师的设计稿
- 下一篇: java美元兑换,(Java实现) 美元