PHP中子類(lèi)重載父類(lèi)的方法(parent--方法名)__第1頁(yè)
PHP中子類(lèi)重載父類(lèi)的方法(parent--方法名)__第2頁(yè)
PHP中子類(lèi)重載父類(lèi)的方法(parent--方法名)__第3頁(yè)
PHP中子類(lèi)重載父類(lèi)的方法(parent--方法名)__第4頁(yè)
PHP中子類(lèi)重載父類(lèi)的方法(parent--方法名)__第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、PHP中子類(lèi)重載父類(lèi)的方法(parent:方法名)_ 在PHP中不能定義重名的函數(shù),也包括不能再同一個(gè)類(lèi)中定義重名的方法,所以也就沒(méi)有方法重載。單在子類(lèi)中可以定義和父類(lèi)重名的方法,由于父類(lèi)的方法已經(jīng)在子類(lèi)中存在,這樣在子類(lèi)中就可以把從父類(lèi)中繼承過(guò)來(lái)的方法重寫(xiě)。 子類(lèi)中重載父類(lèi)的方法就是在子類(lèi)中掩蓋從父類(lèi)中繼承過(guò)來(lái)的方法,父類(lèi)中的方法被子類(lèi)繼承過(guò)來(lái)不就可以挺直用法嗎?為什么還要重載呢?由于有一些狀況我們必需要掩蓋的。例如,有一個(gè)“鳥(niǎo)”類(lèi),在這個(gè)類(lèi)中定義了鳥(niǎo)的通用方法“飛行”。將“鴕鳥(niǎo)”類(lèi)作為它的子類(lèi),就會(huì)將“飛行”的方法繼承過(guò)來(lái),但只要一調(diào)用“鴕鳥(niǎo)”類(lèi)中的這個(gè)“飛行”的方法,鴕鳥(niǎo)就會(huì)飛走。雖然鴕

2、鳥(niǎo)是不會(huì)飛的,但其他特性都具有“鳥(niǎo)類(lèi)”的特性,所以在聲明“鴕鳥(niǎo)”類(lèi)時(shí)還是可以繼承“鳥(niǎo)”類(lèi)的,但必需在“鴕鳥(niǎo)”類(lèi)中將“鳥(niǎo)”類(lèi)中繼承過(guò)來(lái)的“飛行”方法改寫(xiě),就需要在子類(lèi)中重載父類(lèi)中的方法。 在下面的例子中,聲明的Person類(lèi)中有一個(gè)“說(shuō)話(huà)”方法,Student類(lèi)繼承Person類(lèi)后可以挺直用法“說(shuō)話(huà)”方法。但Person類(lèi)中的“說(shuō)話(huà)”方法只能說(shuō)出它自己的成員屬性,而Student類(lèi)對(duì)Person類(lèi)進(jìn)行了擴(kuò)展,多添加了幾個(gè)新的成員屬性。代碼如下所示: ?php class Person protected $name; protected $sex; protected $Wage; functi

3、on _construct($name=,$sex=男,$age=1) $this -name = $name; $this -sex = $sex; $this -age = $age; /在人類(lèi)中聲明一個(gè)通用的說(shuō)話(huà)方法,介紹一下自己 function say() echo 我的名字:.$this- name.,性別:.$this -sex.,年齡:.$this -age.。br; /聲明一個(gè)同學(xué)類(lèi),用法extends關(guān)鍵字?jǐn)U展(繼承)person類(lèi) class Student extends Person private $school; /在同學(xué)類(lèi)中聲明一個(gè)所在學(xué)校school的成員屬性

4、 /掩蓋父類(lèi)中的構(gòu)造方法,在參數(shù)列表中添加一個(gè)學(xué)校屬性,用來(lái)創(chuàng)建對(duì)象并初始化成員屬性 function _construct($name=,$sex=男,$age=1,$school=) $this -name = $name; $this -sex = $sex; $this -age = $age; $this -school = $school; function study() echo $this -name.正在.$this -school.學(xué)習(xí)br; /定義一個(gè)和父類(lèi)中同名的方法,將父類(lèi)中的說(shuō)話(huà)方法掩蓋并重寫(xiě),多說(shuō)出所在的學(xué)校名稱(chēng) function say() echo 我的名字

5、:.$this -name.,性別:.$this -sex.,年齡:.$this -age.,在.$this -school.學(xué)校上學(xué)br; $student= new Student(張三,男,20,edu); /創(chuàng)建一個(gè)同學(xué)對(duì)象,并傳給一個(gè)學(xué)校名稱(chēng)參數(shù) $student - say(); /調(diào)用同學(xué)類(lèi)中掩蓋父類(lèi)的說(shuō)話(huà)方法 ? 改程序運(yùn)行后輸出的結(jié)果為: 我的名字叫:張三,性別:男,我的年齡是:20,在edu學(xué)校上學(xué) 在PHP中,供應(yīng)了在子類(lèi)重載的方法中調(diào)用父類(lèi)被掩蓋方法的功能。這樣就可以在子類(lèi)重寫(xiě)的方法中,連續(xù)用法從父類(lèi)繼承過(guò)來(lái)并被掩蓋的方法,然后再按要求多添加一些新功能。調(diào)用的格式是用法

6、“parent:方法名”在子類(lèi)的重載方法中調(diào)用父類(lèi)中被掩蓋的方法。將上例中的代碼修改一下,在子類(lèi)重寫(xiě)的構(gòu)造方法中用法“parent:_construct()”調(diào)用父類(lèi)中被掩蓋的構(gòu)造方法,再多添加一條對(duì)子類(lèi)中新擴(kuò)展的成員屬性初始化的代碼。在子類(lèi)中重寫(xiě)的say()方法中用法“parent:say()”調(diào)用父類(lèi)中被掩蓋的say()方法,再添加上輸出子類(lèi)成員屬性的功能。 代碼如下所示: ?php class Person protected $name; protected $sex; protected $Wage; function _construct($name=,$sex=男,$age=1)

7、 $this -name = $name; $this -sex = $sex; $this -age = $age; /在人類(lèi)中聲明一個(gè)通用的說(shuō)話(huà)方法,介紹一下自己 function say() echo 我的名字:.$this- name.,性別:.$this -sex.,年齡:.$this -age.。br; /聲明一個(gè)同學(xué)類(lèi),用法extends關(guān)鍵字?jǐn)U展(繼承)person類(lèi) class Student extends Person private $school; /在同學(xué)類(lèi)中聲明一個(gè)所在學(xué)校school的成員屬性 /掩蓋父類(lèi)中的構(gòu)造方法,在參數(shù)列表中添加一個(gè)學(xué)校屬性,用來(lái)創(chuàng)建對(duì)象并

8、初始化成員屬性 function _construct($name=,$sex=男,$age=1,$school=) /調(diào)用父類(lèi)中被掩蓋的構(gòu)造方法,為從父類(lèi)中集成過(guò)來(lái)額出行賦初值 parent:_construct($name,$sex,$age); $this -school = $school; function study() echo $this -name.正在.$this -school.學(xué)習(xí)br; /定義一個(gè)和父類(lèi)中同名的方法,將父類(lèi)中的說(shuō)話(huà)方法掩蓋并重寫(xiě),多說(shuō)出所在的學(xué)校名稱(chēng) function say() parent:say(); /調(diào)用父類(lèi)中被本方法掩蓋掉的方法 echo 在.$this -school.學(xué)校上學(xué)br; $student= new Student(張三,男,20,edu); /創(chuàng)建一個(gè)同學(xué)對(duì)象,并傳給一個(gè)學(xué)校名稱(chēng)參數(shù) $student - say(); /調(diào)用同學(xué)類(lèi)中掩蓋父類(lèi)的說(shuō)話(huà)方法 ? 上面的例子輸出的結(jié)果和前一個(gè)例子是一樣的,但在本例中通過(guò)在子類(lèi)中挺直調(diào)用父類(lèi)中被掩蓋的方法要簡(jiǎn)便許多。另外,在子類(lèi)掩蓋父類(lèi)的方法時(shí)肯定要留意,在子類(lèi)中重寫(xiě)的方法訪問(wèn)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論