久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放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類和函數(shù)的區(qū)別

      面向?qū)ο缶幊?OOP)引入了相當(dāng)多的特性,使編程變得更加復(fù)雜,封裝、繼承、多態(tài)是OOP的三要素,這些是過(guò)程式中的函數(shù)所沒有的。

      php類和函數(shù)的區(qū)別

      具體體現(xiàn)在:

      1.封裝: class/interface/public/protected/private

      2.繼承: extends/implements(推薦學(xué)習(xí):PHP編程從入門到精通)

      3.多態(tài): 方法重寫/方法重載

      新增的class和interface加入了新的變量作用域,即類和接口里代碼塊是函數(shù)所沒有的作用域。

      在這個(gè)作用域里,可以定義變量和函數(shù)這些類和接口的成員,并且支持使用public/protected/private關(guān)鍵字對(duì)這些成員進(jìn)行訪問(wèn)控制.比如public表示允許外部訪問(wèn),protected表示允許類及其子類訪問(wèn),private表示只允許所在類內(nèi)部訪問(wèn)。

      類要有關(guān)鍵字class聲明,類有屬性和方法構(gòu)成,可以實(shí)例化出對(duì)象,類可以被繼承,一般類是面向?qū)ο缶幊虝r(shí)用到;函數(shù)沒有屬性,一般用在面向過(guò)程,為解決某一特定問(wèn)題而寫的。

      而且OOP還引入了方法重寫和方法重載這些多態(tài)特性,即:

      方法重寫:參數(shù)列表相同,方法體不同.

      方法重載:參數(shù)列表不同,方法體不同.

      方法重寫依賴?yán)^承,是子類的方法覆蓋父類的方法,要求方法名和參數(shù)列表相同.

      方法重載不依賴?yán)^承,是同一個(gè)類中的兩個(gè)或兩個(gè)以上的同名方法,參數(shù)列表不同.

      需要注意的是繼承并重寫的方法只能維持或放大訪問(wèn)權(quán)限,不能縮小.

      比如父類protected方法在子類重載為public是可行的.

      在PHP中,因?yàn)椴辉试S存在多個(gè)同名方法,所以不支持C++/Java那樣的方法重載.

      但PHP提供了魔術(shù)方法(__call,__callStatic)用于間接實(shí)現(xiàn)方法重載.

      PHP中方法重寫并不要求參數(shù)相同.

      PHP不支持多重繼承(繼承多個(gè)父類),但可以實(shí)現(xiàn)多個(gè)接口,也可以用trait特性間接支持多重繼承.

      有些人認(rèn)為繼承會(huì)增加子類和父類的耦合,所以反對(duì)繼承,甚至有些新的編程語(yǔ)言如Go等,直接不支持繼承,而是使用組合來(lái)取代繼承.比如依賴注入,本質(zhì)上也是一種組合的思想,用于實(shí)現(xiàn)解耦.PHP中可以final修飾一個(gè)類,禁止這個(gè)類被繼承.

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