java複雜奇葩的巢狀類和介面
在Java語言中,介面可以巢狀在類或其它介面中。由於Java中interface內是不可以巢狀class的,所以介面的巢狀就共有兩種方式:class巢狀interface、interface巢狀interface。
1. class巢狀interface
這時介面可以是public,private和package的。重點在private上,被定義為私有的介面只能在介面所在的類被實現。可以被實現為public的類也可以被實現為private的類。當被實現為public時,只能在被自身所在的類內部使用。只能夠實現介面中的方法,在外部不能像正常類那樣上傳為介面型別。
2. interface巢狀interface
由於介面的元素必須是public的,所以被巢狀的介面自動就是public的,而不能定義成private的。在實現這種巢狀時,不必實現被巢狀的介面。
程式示例(摘抄改編自《Thinking in Java》):
其中語句A.D ad = a.getD()和a.getD().f()的編譯錯誤是因為D是A的私有介面,不能在外部被訪問。語句A.DImp2 di2 = a.getD()的錯誤是因為getD方法的返回型別為D,不能自動向下轉型為DImp2型別。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29900383/viewspace-1698150/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 類與介面(三)java中的介面與巢狀介面Java巢狀
- java介面巢狀【Z】Java巢狀
- RestTemplate處理巢狀的複雜返回物件REST巢狀物件
- Mybatis複雜巢狀關聯一例MyBatis巢狀
- 深入理解java巢狀類和內部類、匿名類Java巢狀
- JS 物件與陣列互相巢狀的複雜例子JS物件陣列巢狀
- Java進階07 巢狀類Java巢狀
- Java巢狀類(NestedClasses)總結Java巢狀
- Java測試內部類和巢狀類位置的合法性Java巢狀
- Java中的巢狀類、內部類、靜態內部類Java巢狀
- 介紹巢狀類和內部類(轉)巢狀
- Java | 靜態巢狀類(Static Nested Class)Java巢狀
- 巢狀類遞迴巢狀遞迴
- JAVA的類和介面Java
- Android筆記之Kotlin、Java的內部類?巢狀類?Android筆記KotlinJava巢狀
- Effective Java讀書筆記八:巢狀類(22)Java筆記巢狀
- 幹掉複雜的工具類,國產Java工具類庫 Hutool 很香!Java
- Java抽象(方法,類)和Java的介面Java抽象
- Kotlin基礎 — 巢狀類、內部類Kotlin巢狀
- UITableView複雜介面處理UIView
- Java集合框架中的介面和類Java框架
- java中抽象類和介面Java抽象
- 【Java基礎】類和介面Java
- 程式碼的縮排和巢狀巢狀
- java定時任務巢狀Java巢狀
- Java 程式碼規範if巢狀Java巢狀
- PLSQL Language Referenc-巢狀表-巢狀表和陣列間的重要區別(正確地使用巢狀表)SQL巢狀陣列
- C++ 巢狀類簡單測試C++巢狀
- 巧用狀態值處理複雜的 TableViewView
- 集合的巢狀巢狀
- 盒子的巢狀巢狀
- java介面和抽象類的簡單理解Java抽象
- JAVA中介面和抽象類的區別Java抽象
- 深入理解Java的介面和抽象類Java抽象
- Java基礎-抽象類和介面Java抽象
- Java抽象類和介面 小白版Java抽象
- javafx和swing巢狀使用的方法Java巢狀
- LESS巢狀中的Mixins和classes巢狀