2019-03-05 16:44:22 2029瀏覽
本篇文章扣丁學(xué)堂PHP培訓(xùn)小編主要是和喜歡PHP開發(fā)技術(shù)的小伙伴們分享一下PHP面向?qū)ο蟪绦蛟O(shè)計(jì)繼承用法簡(jiǎn)單示例,對(duì)PHP開發(fā)技術(shù)感興趣或者是想要參加PHP培訓(xùn)進(jìn)進(jìn)入到PHP開發(fā)領(lǐng)域的小伙伴就隨小編一起來(lái)了解一下吧。
PHP面向?qū)ο蟪绦蛟O(shè)計(jì)繼承用法分享給大家,供大家參考:
<?php //繼承是子類(派生類)從父類(基類,超類)繼承屬性和方法。 //子類也可以有自己的屬性和方法。 //一個(gè)父類可以被多個(gè)子類繼承。 //如果想修改父類的方法,只能在子類里重寫這個(gè)方法,這也是多態(tài)的體現(xiàn)。 //用if($obj instanceof SomeClass){}來(lái)檢查一個(gè)對(duì)象是否屬于一個(gè)類。 //如果$name是protected,private訪問(wèn)權(quán)限,那么將不能在類外被直接訪問(wèn)。 //如果$name是private訪問(wèn)權(quán)限,那么將只能在自身類里訪問(wèn)。 //如果$name是protected訪問(wèn)權(quán)限,可以自身類里訪問(wèn),也可以在子類里訪問(wèn)。 //__construct()是類的構(gòu)造函數(shù),在創(chuàng)建對(duì)象實(shí)例時(shí),自動(dòng)訪問(wèn)該函數(shù),子類也有自己的構(gòu)造函數(shù)。 //子類沒(méi)有構(gòu)造函數(shù)時(shí),在創(chuàng)建對(duì)象時(shí),會(huì)調(diào)用父類的構(gòu)造函數(shù)。 //子類有構(gòu)造函數(shù)時(shí),不用在調(diào)用父類的構(gòu)造函數(shù),除非有parent顯式調(diào)用時(shí),才去調(diào)用父類的構(gòu)造函數(shù)。 //程序結(jié)束時(shí),或者用unset()對(duì)象時(shí),會(huì)調(diào)用析構(gòu)函數(shù)。 //如果類里定義了final的方法,那么此方法將不能被子類重寫。 //如果類聲明了final,那么此類不能被繼承。 //作為慣例,私有的變量名通常以一個(gè)下劃線開始。 //如果一個(gè)類的方法只能被它自己調(diào)用,那么可以設(shè)置為受保護(hù)的或者私有的。 //$this引用當(dāng)前對(duì)象的實(shí)例,self被用作當(dāng)前類的一個(gè)引用。 //靜態(tài)屬性和類常數(shù)只能用類名、parent、self來(lái)訪問(wèn) //函數(shù)名不區(qū)分大小寫,變量區(qū)分大小寫。 class Employees{ protected $name = null; public static $count = 0; function __construct($nameStr){ $this->name = $nameStr; echo "<p>$this->name : ",self::$count," : parent : __construct</p>"; } function work(){ echo "<p>$this->name is working</p>"; } function __destruct(){ echo "<p>parent unset $this->name</p>"; } } class Managers extends Employees{ private $pos = null; function __construct($p,$nameStr){ parent::$count++; parent::__construct($nameStr); $this->pos = $p; echo "<p>$this->name , $this->pos : self : __construct</p>"; } function assignJob(){ echo "<p>$this->name assign jobs</p>"; } function getName(){ return $this->name; } function __destruct(){ echo "<p>self unset $this->name</p>"; } } class Programmers extends Employees{ function code(){ echo "<p>$this->name is coding</p>"; } function getName(){ return $this->name; } } $e1 = new Employees('e1'); $e2 = new MAnagers(2,'e2'); $e3 = new Programmers('e3'); $e1->work(); $e2->work(); $e3->work(); $e2->assignJob(); $e3->Code(); echo "<p>{$e3->getName()}</p>"; //echo "<p>$e1->name</p>"; if($e2 instanceof Employees){ echo "<p>ok</p>"; }else{ echo "<p>no</p>"; } unset($e1,$e2,$e3);
運(yùn)行結(jié)果:
e1 : 0 : parent : __construct e2 : 1 : parent : __construct e2 , 2 : self : __construct e3 : 1 : parent : __construct e1 is working e2 is working e3 is working e2 assign jobs e3 is coding e3 ok parent unset e1 self unset e2 parent unset e3
想要了解更多關(guān)于PHP開發(fā)方面內(nèi)容的小伙伴,請(qǐng)關(guān)注扣丁學(xué)堂PHP培訓(xùn)官網(wǎng)、微信等平臺(tái),扣丁學(xué)堂IT職業(yè)在線學(xué)習(xí)教育平有專業(yè)的PHP講師為您指導(dǎo),此外扣丁學(xué)堂老師精心推出的PHP視頻教程定能讓你快速掌握PHP從入門到精通開發(fā)實(shí)戰(zhàn)技能??鄱W(xué)堂PHP技術(shù)交流群:374332265。
【關(guān)注微信公眾號(hào)獲取更多學(xué)習(xí)資料】
查看更多關(guān)于“php培訓(xùn)資訊”的相關(guān)文章>>