站長資訊網
        最全最豐富的資訊網站

        php中類繼承與接口繼承的區別是什么

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

        php中類繼承與接口繼承的區別是什么

        本文操作環境:Windows10系統、PHP7.1版、Dell G3電腦。

        php中類繼承與接口繼承的區別是什么

        PHP類繼承:

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

        比如:

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

        結果:這是第一個類。 frist 第二個類和第三個類沒有重寫printer()方法,第三個類實例化后可以調用printer()方法。

        2、繼承權限問題

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

        (2)父類protected方法可以被繼承,但不能被實例化對象調用,如果調用會出現" Call to protected method frist::printer()"的報錯,父類對此方法置于保護模式下

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

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

        3、接口類繼承

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

        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) 接口類的方法權限都是public,默認public

        (3)引用接口的類必須實現接口的所有方法,否則會報錯,比如:"Class e contains 1 abstract method and must therefore be declared abstract or implement the remaining methods",即:e類包含1個抽象方法,因此必須聲明抽象或實現其余方法。

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

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

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

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

        (4)抽象類實現的普通發放,可以在非抽象子類中直接調用。

        5、接口和抽象類的異同點(引用抽象類與接口區別)

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

        (2) 接口沒有數據成員,但是抽象類有數據成員,抽象類可以實現數據的封裝。

        (3) 接口沒有構造函數,抽象類可以有構造函數。

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

        (5) 一個類可以同時實現多個接口,但是只能實現一個抽象類。

        (6) 相同點:函數體內不能寫任何東西,比如:function getName();即可。

        推薦學習:《PHP視頻教程》

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国产三级精品三级在专区| 天天爽夜夜爽8888视频精品| 久久这里只有精品视频99| 国精品无码一区二区三区在线| 久久99精品免费一区二区| 久久精品国产秦先生| 国产亚洲精品a在线无码| 亚洲精品无码永久在线观看| 国产高清在线精品一本大道国产| 国产精品亚洲A∨天堂不卡| 亚洲精品成人久久久| 狠狠色伊人久久精品综合网| 日韩精品国产自在久久现线拍| 99香蕉国产精品偷在线观看| 亚洲国产精品无码久久久不卡| 精品久久久久久无码人妻热| 51精品资源视频在线播放 | 久久91精品国产91久久小草| 欧美精品中文字幕亚洲专区| 亚洲国产精品自在拍在线播放| 国产亚洲精品成人a v小说| 99久久精品费精品国产| 欧美国产亚洲精品高清不卡| 精品国产一区二区三区免费| 国产精品青草久久久久婷婷| 国产乱码精品一品二品| 亚洲精品自产拍在线观看动漫| www.久久精品| 凹凸69堂国产成人精品视频| 国产成人精品日本亚洲网址| 99国产欧美精品久久久蜜芽 | 精品国产免费人成网站| 国产精品欧美久久久久天天影视 | 久久无码人妻精品一区二区三区| 国产精品一区三区| 国产在线观看高清精品| 精品无码国产自产拍在线观看蜜 | 亚洲电影日韩精品 | 欧美国产精品va在线观看| 免费人妻精品一区二区三区| 亚洲国产精品人人做人人爱|