這是我閱讀java編程思想選擇入手的第一個模塊脊奋,選擇interface模塊也是因為,不想從頭開始讀1000多頁的書疙描,心理壓力太大诚隙。之前面試被問到的相關(guān)內(nèi)容,interface與abstract classs起胰。
本章涉及內(nèi)容:
抽象類是介于interface與普通類之間
Abstract classes and methods
首先提到abstract class
- 抽象類可以是他的派生類具有類似的方法
- 抽象類不能創(chuàng)建具體實例
- 抽象類的派生類沒有實現(xiàn)所有的抽象方法則也是抽象類久又,用關(guān)鍵字abstract 標識
- 抽象類可以沒有抽象方法,意味著你不想生成這個類的實例
- 其實一直不理解這一塊為啥一直提“The instrument class” 因為是挑著看的效五,我理解的意思是工具類地消,類似一些沒有狀態(tài)的類
- 可以有利于重構(gòu)時候的方法提升
interface
interface是特殊的抽象類,更進一步的抽象
- interface只提供了方法的聲明畏妖,沒有實現(xiàn)
- interface可以實現(xiàn)變異版本的“多繼承”脉执,可以創(chuàng)建一個類,向上轉(zhuǎn)型為多個基本類
- interface 如果不添加pubilc關(guān)鍵字瓜客,只能在包內(nèi)訪問
- interface 可以有字段适瓦。默認添加會添加static和final修飾
- Creating a method that behaves differently depending on the argument object that you pass it is Strategy design pattern 策略設(shè)計模式:根據(jù)傳入?yún)?shù)對象創(chuàng)建一個行為不同的的方法
- ***write code to take the interface thar you have and produce the interface that you need ***Adapter design pattern 適配器模式:編寫一個接口竿开,獲取需要控制的生成接口實例
"Multiple inheritance" in java
- “多繼承” 實現(xiàn)多個接口 與C++ 是不同的
- 接口的繼承 繼承也可以多個接口谱仪,使用逗號隔開
- 組合接口的命名沖突,繼承多個接口否彩、方法名形同疯攒,重載如果僅僅返回值不同是不被允許的。盡量規(guī)避不同的接口方法名相同
Adaptiong to an interface
- 適配一個接口 Strategy design patten
接口的字段
- java5之前列荔,接口用來實現(xiàn)枚舉常量的效果敬尺,建議接口中的字段使用大寫字母加下劃線組成
- interface中字段默認static和final
接口的嵌套
- 接口可以使用private 用于private inner class
- private 的interface 只能在class內(nèi)部使用,切無法向上轉(zhuǎn)型
- interface嵌套interface贴浙,但是嵌套的interface必須是pubilc
interface和工廠方法
- "An interface is intended to be a gateway to multiple implementations ,and a typical way to produce objects that fit interface " Factory Method design pattern 工廠方法設(shè)計模式:
如果一個接口有多個實現(xiàn)砂吞,并且這個接口返回一個生產(chǎn)對象。
summary
- 主要講述interface和abstract 的創(chuàng)建應(yīng)該是有設(shè)計意圖的崎溃,在重構(gòu)的工作當中蜻直,使用interface和abstract是可以改變代碼的健壯性。