真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

PHP中面向?qū)ο罄^承的定義

本文目標(biāo):

1、了解繼承的定義

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名申請、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、金寨網(wǎng)站維護(hù)、網(wǎng)站推廣。

2、掌握繼承的好處

(一)、定義

PHP中面向?qū)ο罄^承的定義

我們仔細(xì)看上面一張圖,然后做一件事情,找出他們的共同點(diǎn)

共同點(diǎn):

1、都擁有部分相同的屬性和方法

2、他們都是人

按照正常類的定義走,我們要實現(xiàn)以上2個類,我們得分別定義NBA球員這個類的所有屬性和方法,然后定義女主播類的時候,還得寫一遍重復(fù)的姓名,身高,體重等屬性和吃飯的方法,如果又有一個類比如叫學(xué)生,那意味著這些共同的屬性和共同的方法又得重復(fù)寫一遍,以此類推,代碼會有很多地方類似,這樣增加的代碼的冗余性,所以為了解決這種冗余性,為了讓代碼更簡潔,可重用性高,我們可以把這些共同的屬性和方法都寫到一塊去,然后讓每個類都去調(diào)用這個公共的屬性和方法,這樣維護(hù)起來是不是就更加方便了,而且代碼也更加簡潔了,那么這種做法我們就叫做繼承

具體怎么做的呢,如下圖

PHP中面向?qū)ο罄^承的定義

我們先創(chuàng)建了一個“人“的類,讓這個人都具有2個類都有的屬性和方法,再讓NBA球員和女主播都繼承 “人” 這個類

PHP中面向?qū)ο罄^承的定義

概念:被繼承的類叫父類,比如人,繼承的類叫子類

總結(jié):什么是繼承,繼承是一種方法,用來提高代碼的可重用性和減少代碼的冗余性,就像現(xiàn)實生活中的遺傳一樣,子女都會繼承父母的部分基因,所以你一生下來你就是有人類的共同屬性和行為

(二)、繼承的好處

1、提高代碼的重用性,節(jié)約了編程的時間和代價

父類中定義的屬性和方法就不需要子類中重復(fù)定義,子類只要繼承了父類,就擁有了父類中所有的屬性和方法

2、對于同一個父類下的所有子類,調(diào)用他們的時候可以一視同仁

比如不管是NBA球員還是女主播,因為他們都是人,所以我們調(diào)用他們的時候可以直接調(diào)用父類的方法,比如吃飯,而不用管這個類到底是NBA球員還是女主播

3、子類可以修改調(diào)整父類定義的類成員

a、我們稱為重寫(Overwrite)

b、一旦子類修改好了,就按照子類定義的方法執(zhí)行

這相當(dāng)于變異

學(xué)習(xí)任何東西我們既要知道其理論,還要有相關(guān)的理論實踐,其實所有的理論都是實踐得出來的,所以有的時候我一再強(qiáng)調(diào),理論雖然很抽象,但是大家有了一定的實踐經(jīng)驗后也要進(jìn)行總結(jié),總結(jié)一些言簡意賅,通俗易懂的“理論”,這個習(xí)慣培養(yǎng)好了以后,我相信很多知識大家能夠了解的更加透徹,同時更容易抓住事情的本質(zhì),這樣分析問題的能力也會得到提升。

好了,既然要理論和實踐相結(jié)合,那么接下來,我們通過代碼進(jìn)行實操演示,看看在代碼中具體是怎么實現(xiàn)繼承的

(三)、具體代碼

name."在吃".$food."
"; } } //女主播 class Anchors extends Human{ public $name = ""; public $stageName = ""; public function __construct( $name,$stageName ){ $this->name = $name; $this->stageName = $stageName; } public function singing(){ echo "我是女主播,我會唱歌
"; } //重寫方法eat public function eat($food){ echo "我是女主播,我是邊唱歌邊吃{$food}
"; } } //Nba球員類 class NbaPlayer extends Human{ //因為父類已經(jīng)有了,所以就不需要再寫了,通過extends來實現(xiàn) // public $name = "";//姓名 // public $height = "";//身高 // public $weight = "";//體重 public $team = "";//團(tuán)隊 public $playerName = "";//球員號碼 public function __construct( $name,$height,$weight,$team,$playerName ){ $this->name = $name; $this->height=$height; $this->weight = $weight; $this->team = $team; $this->playName = $playerName; echo "構(gòu)造函數(shù)執(zhí)行了,當(dāng)前對象是{$this->name}
"; } //跑步 public function run(){ echo "跑步中
"; } //跳躍 public function jump(){ echo "跳躍
"; } //運(yùn)球 public function dribble(){ echo "運(yùn)球
"; } //傳球 public function pass(){ echo "傳球
"; } //投籃 public function shoot(){ echo "投籃
"; } //扣籃 public function dunk(){ echo "扣籃
"; } //重寫方法eat ,只要名稱和父類一樣就是代表重寫了不一定參數(shù)也要保持一樣 public function eat($food){ echo "我是Nba球員,我是站著吃飯,邊吃{$food}邊看球賽
"; } } //測試,NBA球員,沒有直接定義name,身高,體重,現(xiàn)在輸出一下看結(jié)果有沒有 //創(chuàng)建喬丹對象 $jordon = new NbaPlayer("喬丹","1.98米","98公斤","公牛","23"); //輸出喬丹對象 echo "名稱= ".$jordon->name."
"; //測試,NBA球員,沒有直接定義eat方法,現(xiàn)在輸出一下看結(jié)果有沒有 echo $jordon->eat("蘋果"); //證明第二個好處,只要是個人就可以調(diào)用它的eat方法 $linda = new Anchors("琳達(dá)","LD"); echo $linda->eat("蘋果"); //測試第三個好處是否真實 //思路1.為女主播和NBA球員2個類分別重寫eat方法 // 2.再次執(zhí)行2個對象的eat方法 // 會發(fā)現(xiàn)一旦子類重寫了父類的方法,那么就會調(diào)用子類自己的方法了,這里就大家自己寫下,因為上面我已經(jīng)調(diào)用了eat方法,一旦重寫了,上面的結(jié)果會變 ?>

通過上述代碼的演示,我們總結(jié)一下:

1、extends 就是繼承,通過這個關(guān)鍵字可以實現(xiàn)子類繼承父類,共享父類的所有屬性和方法

2、繼承代碼的其他特點(diǎn):

● 在子類構(gòu)造函數(shù)中也可以直接通過$this->來訪問

● 在php中extends 后面只能繼承一個類,不能用,來實現(xiàn)繼承多個類,否則會報錯

總結(jié):

本文其實目標(biāo)只有2個,知道繼承的定義和好處,最后我們通過代碼相信對繼承的好處有了更深的體會和理解

以上就是PHP中面向?qū)ο笾^承的詳細(xì)內(nèi)容,更多請關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!


分享文章:PHP中面向?qū)ο罄^承的定義
分享地址:http://weahome.cn/article/pdoese.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部