接口:
使用interface關鍵字聲明接口。例如:
<a href="https://s1.51cto.com/oss/201710/19/877389a882ffea85736d55ec985b7392.png" target="_blank"></a>
接口需要被類實作,因為接口隻做聲明不做實作。例如:
<a href="https://s5.51cto.com/oss/201710/19/5f127929e198a10d3a3d2a5d5cf3790f.png" target="_blank"></a>
Implements是實作接口關鍵字,一旦類實作了某個接口,就必須重寫這個接口聲明的方法。接口會有一個符号顯示着:
<a href="https://s5.51cto.com/oss/201710/19/e13e7a733d370e388014d51b4e294c41.png" target="_blank"></a>
看到這個符号就可以知道這是一個接口。
聲明了接口就必須應用接口程式設計,不然會越來越覺得接口是個可有可無的東西,進而失去了接口的意義。例如:
<a href="https://s3.51cto.com/oss/201710/19/a848ddb2bc6bbdbc73c253afc3e9298f.png" target="_blank"></a>
使用接口作為類型聲明變量名,将建構對象的對象指派到這個變量名裡,然後使用這個變量名來調用對象裡的方法,是面向父類程式設計的一種思想,這樣的話就不需要記着那麼多的子類。
總結:
1.接口和接口之間可以繼承
2.一個類可以實作N個接口
3.接口中隻能申請執行個體公開(public)方法
4.接口在jdk1.7版本以上,可以申請靜态的方法實作
5.子類實作接口,如果繼承的父類實作了接口相同的方法,子類是可以不重寫的
6.聲明了接口,就應該面向接口程式設計(萬事萬物皆接口)
簡單工廠:
簡單工廠是工廠方法設計模式的入門,屬于建立型模式,用于隐藏對象的建立、生産對象,增大了易改性和可擴充性,可以比較好的管理對象,不會依賴于子類。
簡單工廠先用接口來制定需要實作的功能,讓類實作這個接口裡面的功能,然後建立一個工廠類,接着使用接口作為傳回類型來申請一個字元串類型參數的靜态方法,并加上create方法名。然後在方法裡進行判斷,用參數名調用equals方法來比較字元串裡的内容是否為類名,是的話就建構這個類名的對象,并return出去,如果判斷沒有這個類名就return一個null。
在測試類裡則使用接口作為類型聲明一個變量名,然後用工廠類的類名直接調用它的create靜态方法并使用字元串來傳遞需要建構的對象的類名。
代碼示例:
<a href="https://s1.51cto.com/oss/201710/19/f280eec5aa555ebf7fd8dd6bbd87d486.png" target="_blank"></a>
<a href="https://s5.51cto.com/oss/201710/19/e88ca1bc4bc68e3852844991bcf7fe98.png" target="_blank"></a>
<a href="https://s3.51cto.com/oss/201710/19/b44caf749ab88fa62477263ebacec3a7.png" target="_blank"></a>
<a href="https://s1.51cto.com/oss/201710/19/ab98b94fe50fa2af3caa62fccfe2d271.png" target="_blank"></a>
<a href="https://s5.51cto.com/oss/201710/19/c06bc0173ea620c72d13544e66a4a13b.png" target="_blank"></a>
<a href="https://s1.51cto.com/oss/201710/19/f2f0d2dc8d34688113f24700c5e1811b.png" target="_blank"></a>
如果需要添加新的功能,就建立一個接口裡面寫上需要實作的功能,然後建立一個類繼承一個父類并實作這個新的接口,在測試類裡強制轉換一下接口類型就可以調用新增的方法了。例如:
<a href="https://s3.51cto.com/oss/201710/19/39f101622ce9f2f24fbcb341bb543331.png" target="_blank"></a>
<a href="https://s5.51cto.com/oss/201710/19/912c769fbfb919ce6cf28a84ab869293.png" target="_blank"></a>
<a href="https://s3.51cto.com/oss/201710/19/17b0a8670c62b3cb0db63206ddf48b97.png" target="_blank"></a>
需要添加一個新的類的話,實作接口後就直接在工廠類裡加一個判斷即可。
<a href="https://s3.51cto.com/oss/201710/19/0eff05781630411bb50f7ff6cf3ccb52.png" target="_blank"></a>
<a href="https://s3.51cto.com/oss/201710/19/a89948e8cfe233237eff9ef4b2b40b2d.png" target="_blank"></a>
<a href="https://s4.51cto.com/oss/201710/19/df262dabef367eb99b8d593c281525cf.png" target="_blank"></a>
<a href="https://s4.51cto.com/oss/201710/19/21575a845cfa56d7072b17437dd17f56.png" target="_blank"></a>
本文轉自 ZeroOne01 51CTO部落格,原文連結:http://blog.51cto.com/zero01/1974343,如需轉載請自行聯系原作者