欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長(zhǎng)資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

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

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

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

          具體體現(xiàn)在:

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

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

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

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

          在這個(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ù)沒(méi)有屬性,一般用在面向過(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)