- 接口和內(nèi)部類為我們提供了一種將接口與實(shí)現(xiàn)分離的更加結(jié)構(gòu)化的方法
一掰烟、抽象類和抽象方法(abstract)
抽象方法:僅有聲明而沒(méi)有方法體毡们。 abstract void f();
抽象類:包含抽象方法的類
從一個(gè)抽象類繼承時(shí)窄潭,必須為基類中的所有抽象方法提供方法定義春宣,
二、接口(Interface implements)
接口被用來(lái)建立類與類之間的協(xié)議
public interface Instrument(){}
public class Wind implemnets Instrument(){}
三、完全解耦
策略設(shè)計(jì)模式:創(chuàng)建一個(gè)能夠根據(jù)所傳遞參數(shù)對(duì)象的不同而具有不同行為的方法
適配器設(shè)計(jì)模式:適配器中的代碼將接受你所擁有的接口月帝,并產(chǎn)生你所需要的接口
四躏惋、java中的多重繼承
- 通過(guò)組合多個(gè)接口,實(shí)現(xiàn)多重繼承
使用接口的核心原因嚷辅,為了能夠向上轉(zhuǎn)型為多個(gè)基類
+創(chuàng)建接口還是創(chuàng)建抽象類簿姨?
如果要?jiǎng)?chuàng)建不帶任何方法定義和成員變量的基類,應(yīng)選擇接口
五簸搞、通過(guò)繼承來(lái)擴(kuò)展接口
- 通過(guò)繼承在新接口中添加新方法
關(guān)鍵字extends款熬,只可以用于單一類,但是可以用于多個(gè)接口
interface Vampire extends DangerousMonster, Lethal{}
六攘乒、適配接口
- 一個(gè)接口可以有多個(gè)不同的具體實(shí)現(xiàn)
- 體現(xiàn)形式:一個(gè)接受接口類型的方法贤牛,而該接口的實(shí)現(xiàn)和向該方法傳遞的對(duì)象(多態(tài))則取決于方法的使用者。