1、interface産生一個完全抽象的類,無任何實作,interface代替class
使子類能夠向上轉型成為多種基類,實作多重繼承
2、接口:所有實作該接口的類看起來都像他
接口被用來建立類與類之間的協定
接口中的方法都是public的。
3、多繼承:可繼承任意多個接口,可以向上轉型為多個基類
接口隻能繼承接口。
4、通過繼承擴充接口
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiIXZ05WZD9CX5RXa2Fmcn9CXwczLcVmds92czlGZvwVP9EUTDZ0aRJkSwk0LcxGbpZ2LcBDM08CXlpXazRnbvZ2LcRlMMVDT2EWNvwFdu9mZvwVPFpmT3lleOBTQq1kZShVW1xmMjZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39DO3ATN0ADNxIDOwITM0EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
5、接口中放入群組常量
6、内部類
内部類與組合不同
作用:可将内部類向上轉型為接口。此内部類(某個接口的實作)對外隐藏,得到的隻是指向接口的引用
内部類可有private和protected權限隐藏代碼。
7、匿名内部類
8、用匿名内部類在外部定義對象,參數引用應是final
9、内部類對象能通路外圍類的所有成員
10、嵌套類:如果不需要内部類與外部類有聯系,将内部類聲明為static
因為普通内部類隐式包含引用指向外圍類。
11、引用外圍類對象
必須用外圍類對象來建立内部類對象。不可直接在前面加上外圍類名字
12、為什麼要内部類?
閉包:
内部類是面向對象的閉包,他包含外圍類的資訊,還擁有一個指向外圍類對象的引用。因為内部類有權操作外圍類所有的成員。
第三版P226