《PHP編程:php繼承中方法重載(覆蓋)的應(yīng)用場(chǎng)合》要點(diǎn):
本文介紹了PHP編程:php繼承中方法重載(覆蓋)的應(yīng)用場(chǎng)合,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
PHP實(shí)戰(zhàn)本文實(shí)例分析了php繼承中辦法重載(覆蓋)的應(yīng)用場(chǎng)合.分享給大家供大家參考.具體分析如下:
PHP實(shí)戰(zhàn)辦法重載(override)/覆蓋――在什么情況下使用:當(dāng)父類(lèi)知道所有的子類(lèi)都需要用到一個(gè)辦法,但父類(lèi)不知道怎么去寫(xiě)這個(gè)辦法時(shí),就需要用到辦法的重載.這時(shí)候,可以讓子類(lèi)去重寫(xiě),來(lái)覆蓋這個(gè)辦法.
PHP實(shí)戰(zhàn)通俗實(shí)例――父類(lèi)(動(dòng)物)知道其子類(lèi)(貓和狗)都會(huì)叫,但它們的叫法都不一樣,所以父類(lèi)沒(méi)法去寫(xiě)這個(gè)辦法,只能讓子類(lèi)(貓和狗)去定義.代碼如下:
PHP實(shí)戰(zhàn)
<?php
class Animal{
public $name;
protected $price;
function cry(){
echo "不知道動(dòng)物怎么叫";
}
}
class Dog extends Animal{
function cry(){
echo "汪汪...";
}
}
class Pig extends Animal{
function cry(){
echo "哼哼..."
}
}
?>
PHP實(shí)戰(zhàn)辦法重載/覆蓋的要點(diǎn)與細(xì)節(jié)(讀起來(lái)有點(diǎn)呦口):
PHP實(shí)戰(zhàn)1、要求子類(lèi)的方法,其方法名稱(chēng)、參數(shù)列表與父類(lèi)方法一模一樣.如例子中cry(),不能添加參數(shù),改成cry($naaa)等.注意:這里并不要求參數(shù)名一樣,只是要求參數(shù)的個(gè)數(shù)是一樣的.
2、所謂的重載或覆蓋,并不是將父類(lèi)的方法覆蓋.也可以這么理解:如果子類(lèi)有調(diào)用該方法時(shí),如果在自己類(lèi)里找不到這個(gè)方法,那么它會(huì)去找父類(lèi)里,看有沒(méi)有這個(gè)方法.這也是多態(tài)的理解
3、如果子類(lèi)里某個(gè)方法,要把父類(lèi)里相同名稱(chēng)方法里的內(nèi)容繼承下來(lái),可以使用 parent::方法名 或 父類(lèi)名::方法名 繼承.在子類(lèi)定義的方法內(nèi)使用.
4、拜訪權(quán)限問(wèn)題,子類(lèi)的拜訪范圍>=父類(lèi)的拜訪范圍,即如果父類(lèi)是protected function cry(),子類(lèi)則只能是protected或public.
PHP實(shí)戰(zhàn)希望本文所述對(duì)大家的php程序設(shè)計(jì)有所贊助.
維易PHP培訓(xùn)學(xué)院每天發(fā)布《PHP編程:php繼承中方法重載(覆蓋)的應(yīng)用場(chǎng)合》等實(shí)戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/12438.html