php接口開發(fā)是用類進(jìn)行的,抽象類是其中的一種方式,那么php接口開發(fā) 抽象類和接口的特點(diǎn)、區(qū)別和選擇分別是什么呢?是否很想知道這方面的知識(shí),下面一起來看看小編搜集到的相關(guān)知識(shí)吧。
一.特點(diǎn):
1、接口的特點(diǎn)
(1) 接口的方法必須是公開的。
(2) 接口的方法默認(rèn)是抽象的,所以不在方法名前面加abstract。
(3) 接口可以定義常量,但不能定義成員屬性,常量的定義和用法和類中常量一樣。
(4) 類可以實(shí)現(xiàn)多個(gè)接口(用逗號(hào)隔開)
(5) 接口也可以繼承接口。
2、抽象類特點(diǎn)
(1) 用abstract 來修飾一個(gè)方法,那么該方法就是抽象方法;
(2) 抽象方法不能有方法體。即abstract function abc();------后面不能加大括號(hào){.........}。
(3) 如果類中有一個(gè)抽象方法,那么該類就必須定義為抽象類;但反過來,抽象類里并不一定要有抽象方法。另外,抽象類里也可以有普通方法。
(4) 用 abstract 來修飾一個(gè)類,那么這個(gè)類就是抽象類;抽象類絕對(duì)不能被實(shí)例化,即$abc = new 抽象類名();會(huì)報(bào)錯(cuò)。
(5)、一個(gè)類繼承了某個(gè)抽象類,那么,它必須實(shí)現(xiàn)抽象類中所有的抽象方法(除非,它也這些抽象方法聲明為抽象的,相當(dāng)于抽象類繼承了抽象類)。
二. 區(qū)別:
1、接口沒有構(gòu)造函數(shù),抽象類可以有構(gòu)造函數(shù)。
2、接口中不可以聲明成員變量(包括類靜態(tài)變量),但是可以聲明類常量。抽象類中可以聲明各種類型成員變量,實(shí)現(xiàn)數(shù)據(jù)的封裝。
3、對(duì)接口的使用是通過關(guān)鍵字implements。對(duì)抽象類的使用是通過關(guān)鍵字extends。當(dāng)然接口也可以通過關(guān)鍵字extends繼承。
4、接口中的方法默認(rèn)都是public類型的,而抽象類中的方法可以使用private,protected,public來修飾。
5、一個(gè)類可以同時(shí)實(shí)現(xiàn)多個(gè)接口,但一個(gè)類只能繼承于一個(gè)抽象類。
三 .選擇:
如果要?jiǎng)?chuàng)建一個(gè)模型,這個(gè)模型將由一些緊密相關(guān)的對(duì)象采用,就可以使用抽象類。如果要?jiǎng)?chuàng)建將由一些不相關(guān)對(duì)象采用的功能,就使用接口。如果必須從多個(gè)來源繼承行為,就使用接口。如果知道所有類都會(huì)共享一個(gè)公共的行為實(shí)現(xiàn),就使用抽象類,并在其中實(shí)現(xiàn)該行為。
php接口開發(fā) 抽象類和接口的特點(diǎn)、區(qū)別和選擇就是這些,在php接口開發(fā)時(shí)可以根據(jù)這些特點(diǎn)和區(qū)別進(jìn)行運(yùn)用。無論供接口開發(fā)、支付接口開發(fā)還是需要php接口開發(fā),網(wǎng)上都有優(yōu)秀的接口開發(fā)設(shè)計(jì)給你提供各種方案。
掃一掃 加微信咨詢