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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

2、鳥是不會飛的,但其他特性都具有“鳥類”的特性,所以在聲明“鴕鳥”類時還是可以繼承“鳥”類的,但必需在“鴕鳥”類中將“鳥”類中繼承過來的“飛行”方法改寫,就需要在子類中重載父類中的方法。 在下面的例子中,聲明的Person類中有一個“說話”方法,Student類繼承Person類后可以挺直用法“說話”方法。但Person類中的“說話”方法只能說出它自己的成員屬性,而Student類對Person類進行了擴展,多添加了幾個新的成員屬性。代碼如下所示: ?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; /在人類中聲明一個通用的說話方法,介紹一下自己 function say() echo 我的名字:.$this- name.,性別:.$this -sex.,年齡:.$this -age.。br; /聲明一個同學類,用法extends關鍵字擴展(繼承)person類 class Student extends Person private $school; /在同學類中聲明一個所在學校school的成員屬性

4、 /掩蓋父類中的構造方法,在參數(shù)列表中添加一個學校屬性,用來創(chuàng)建對象并初始化成員屬性 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.學習br; /定義一個和父類中同名的方法,將父類中的說話方法掩蓋并重寫,多說出所在的學校名稱 function say() echo 我的名字

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

6、“parent:方法名”在子類的重載方法中調用父類中被掩蓋的方法。將上例中的代碼修改一下,在子類重寫的構造方法中用法“parent:_construct()”調用父類中被掩蓋的構造方法,再多添加一條對子類中新擴展的成員屬性初始化的代碼。在子類中重寫的say()方法中用法“parent:say()”調用父類中被掩蓋的say()方法,再添加上輸出子類成員屬性的功能。 代碼如下所示: ?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; /在人類中聲明一個通用的說話方法,介紹一下自己 function say() echo 我的名字:.$this- name.,性別:.$this -sex.,年齡:.$this -age.。br; /聲明一個同學類,用法extends關鍵字擴展(繼承)person類 class Student extends Person private $school; /在同學類中聲明一個所在學校school的成員屬性 /掩蓋父類中的構造方法,在參數(shù)列表中添加一個學校屬性,用來創(chuàng)建對象并

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

溫馨提示

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

評論

0/150

提交評論