抽象類: 包含抽象方法的類叫做抽象類.
抽象方法: 僅聲明名稱而沒(méi)有方法體
如果從一個(gè)抽象類繼承, 并想創(chuàng)建該新類的對(duì)象, 那么就必須為基類中的所有抽象方法提供方法定義.
創(chuàng)建抽象類的目的是不同的子類可以以不同的方式表示此接口.
接口: 就是一個(gè)完全抽象的類. 它根本沒(méi)有提供任何具體實(shí)現(xiàn). 它允許人們創(chuàng)建一個(gè)能夠被向上轉(zhuǎn)型為多種基類的類型, 來(lái)實(shí)現(xiàn)某種類似多重繼承的特性. 里面的方法默認(rèn)就是public的. 可以完全解耦
策略模式: 創(chuàng)建一個(gè)能夠根據(jù)所傳遞的參數(shù)對(duì)象的不同而具有不同行為的方法.
適配器模式: 適配器中的代碼將接受你所擁有的接口, 并產(chǎn)生你所需要的接口.
Java中的多重繼承: 組合多個(gè)類的接口
通過(guò)繼承來(lái)擴(kuò)展接口: 通過(guò)繼承, 可以很容易的在接口中添加新的方法. 還可以通過(guò)繼承在新接口中組合數(shù)個(gè)接口, 這兩種情況都可以獲得新的接口. (疊加)
interface a extends b ,c 這樣的話, a就有了b和c的接口.
接口最吸引人的原因之一就是允許同一個(gè)接口具有多個(gè)不同的具體實(shí)現(xiàn). 所以, 接口的一種常見(jiàn)的使用方法就是策略設(shè)計(jì)模式.
適配接口: 適配器模式
接口中的域: 放入接口的任何域都自動(dòng)是static和final的. 所以接口成了一種很便捷的用來(lái)創(chuàng)建常量組的工具, 在java se5之前用來(lái)創(chuàng)建枚舉.
空白final: 是指聲明為final卻又未賦值的區(qū)域.
在接口中定義的域不能是"空白final", 但是卻可以被非常量表達(dá)式初始化.
嵌套接口: 接口可以嵌套在其他接口中.