站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

php中類繼承與接口繼承的區(qū)別是什么

在PHP中,類繼承與接口繼承的區(qū)別是:PHP類不支持多繼承,也就是子類只能繼承一個(gè)父類,但是支持多層次繼承,而接口支持多繼承,也就是接口可以繼承一個(gè)或者多個(gè)接口。

php中類繼承與接口繼承的區(qū)別是什么

本文操作環(huán)境:Windows10系統(tǒng)、PHP7.1版、Dell G3電腦。

php中類繼承與接口繼承的區(qū)別是什么

PHP類繼承:

1、PHP類不支持多繼承,也就是子類只能繼承一個(gè)父類,但是支持多層次繼承

比如:

class frist{   public function __construct(){     echo "我是第一個(gè)類。","<br>";   }   public function printer(){     echo "frist","<br>";   } } class seconds extends frist{} class third extends seconds{} $obj = new third(); $obj->printer();

結(jié)果:這是第一個(gè)類。 frist 第二個(gè)類和第三個(gè)類沒有重寫printer()方法,第三個(gè)類實(shí)例化后可以調(diào)用printer()方法。

2、繼承權(quán)限問題

(1)父類private方法不可被繼承,父類私有化

(2)父類protected方法可以被繼承,但不能被實(shí)例化對象調(diào)用,如果調(diào)用會(huì)出現(xiàn)" Call to protected method frist::printer()"的報(bào)錯(cuò),父類對此方法置于保護(hù)模式下

(3)父類public方法可以被繼承、可以被實(shí)例化對象調(diào)用,屬于公開方法

(4)子類可重寫父類public或者protected的方法,不能重新private的方法,如果同名只是在本類重新聲明

3、接口類繼承

(1) 接口支持多繼承,接口類的方法不需要實(shí)現(xiàn)比如:

interface frist{   public function ex1(); } interface seconds{   public function ex2(); } interface third extends frist,seconds{   public function ex3(); } class fourth implements third{   public function ex1(){}   public function ex2(){}   public function ex3(){} } class fourth implements frist,seconds{   public function ex1(){}   public function ex2(){} }

(2) 接口類的方法權(quán)限都是public,默認(rèn)public

(3)引用接口的類必須實(shí)現(xiàn)接口的所有方法,否則會(huì)報(bào)錯(cuò),比如:"Class e contains 1 abstract method and must therefore be declared abstract or implement the remaining methods",即:e類包含1個(gè)抽象方法,因此必須聲明抽象或?qū)崿F(xiàn)其余方法。

4、抽象類:只要一個(gè)類里面有一個(gè)方法是抽象方法,那么這個(gè)類就要定義為抽象類

(1)抽象類繼承抽象類不能重寫父類方法。

(2)抽象類繼承是對父類的方法的拓展。

(3)繼承的派生類當(dāng)中要把所有抽象方法重載才能實(shí)例化。

(4)抽象類實(shí)現(xiàn)的普通發(fā)放,可以在非抽象子類中直接調(diào)用。

5、接口和抽象類的異同點(diǎn)(引用抽象類與接口區(qū)別)

(1)對接口的使用方式是通過關(guān)鍵字implements來實(shí)現(xiàn)的,而對于抽象類的操作是使用類繼承的關(guān)鍵字exotends實(shí)現(xiàn)的

(2) 接口沒有數(shù)據(jù)成員,但是抽象類有數(shù)據(jù)成員,抽象類可以實(shí)現(xiàn)數(shù)據(jù)的封裝。

(3) 接口沒有構(gòu)造函數(shù),抽象類可以有構(gòu)造函數(shù)。

(4)接口中的方法都是public類型,而抽象類中的方法可以使用private、protected或public來修飾。

(5) 一個(gè)類可以同時(shí)實(shí)現(xiàn)多個(gè)接口,但是只能實(shí)現(xiàn)一個(gè)抽象類。

(6) 相同點(diǎn):函數(shù)體內(nèi)不能寫任何東西,比如:function getName();即可。

推薦學(xué)習(xí):《PHP視頻教程》

贊(0)
分享到: 更多 (0)
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
国产亚洲色婷婷久久99精品91| 国产综合内射日韩久| 99热在线观看精品| 国语精品一区二区三区| 精品性影院一区二区三区内射 | 国产精品扒开腿做爽爽爽视频| 午夜成人精品福利网站在线观看| 日韩亚洲变态另类中文| 国产精品videossex另类| 精品国产一区二区三区久久狼 | 三上悠亚精品二区在线观看| 国产成人亚洲精品91专区手机| 亚洲av永久无码精品秋霞电影秋| 91精品国产综合久久香蕉 | 国产精品人成在线播放新网站 | 视频精品一区二区三区| 日韩在线永久免费播放| 国产精品三级视频| 久久亚洲精品无码aⅴ大香| 国产色精品vr一区区三区| 精品国产呦系列在线看| 亚洲日韩精品国产一区二区三区 | 亚洲精品国产综合久久久久紧 | 一本久久a久久精品综合香蕉 | 99久久99久久精品| 久久亚洲日韩精品一区二区三区| 日韩精品专区AV无码| 久久综合久久自在自线精品自| 99视频精品在线| 在线观看日韩精品| 精品乱码久久久久久久| 99久久久精品免费观看国产| 精品视频在线免费观看| 99久久国产综合精品女同图片| 中文精品无码中文字幕无码专区| 亚洲国产另类久久久精品黑人 | 色一乱一伦一图一区二区精品 | 日本精品一区二区在线播放| 国产精品秦先生手机在线| 69国产成人精品视频软件| 99re热这里有精品首页视频|