久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

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

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

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

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

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

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

      PHP類(lèi)繼承:

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

      比如:

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

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

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

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

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

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

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

      3、接口類(lèi)繼承

      (1) 接口支持多繼承,接口類(lèi)的方法不需要實(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) 接口類(lèi)的方法權(quán)限都是public,默認(rèn)public

      (3)引用接口的類(lèi)必須實(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類(lèi)包含1個(gè)抽象方法,因此必須聲明抽象或?qū)崿F(xiàn)其余方法。

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

      (1)抽象類(lèi)繼承抽象類(lèi)不能重寫(xiě)父類(lèi)方法。

      (2)抽象類(lèi)繼承是對(duì)父類(lèi)的方法的拓展。

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

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

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

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

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

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

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

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

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

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

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)