PHP面向?qū)ο蟪绦蛟O(shè)計(jì)繼承用法簡(jiǎn)單示例
本文實(shí)例講述了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è)下劃線開(kāi)始。 //如果一個(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相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語(yǔ)法入門教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- PHP面向?qū)ο笕筇攸c(diǎn)學(xué)習(xí)(充分理解抽象、封裝、繼承、多態(tài))
- 詳解php中的類與對(duì)象(繼承)
- php面向?qū)ο笕ヂ?(七) 繼承性
- PHP入門教程之面向?qū)ο蟮奶匦苑治?繼承,多態(tài),接口,抽象類,抽象方法等)
- PHP面向?qū)ο蟪绦蛟O(shè)計(jì)高級(jí)特性詳解(接口,繼承,抽象類,析構(gòu),克隆等)
- PHP面向?qū)ο罄^承用法詳解(優(yōu)化與減少代碼重復(fù))
- PHP面向?qū)ο蟪绦蛟O(shè)計(jì)OOP繼承用法入門示例
- PHP面向?qū)ο蟪绦蛟O(shè)計(jì)之接口的繼承定義與用法詳解
- PHP學(xué)習(xí)記錄之面向?qū)ο螅∣bject-oriented programming,OOP)基礎(chǔ)【類、對(duì)象、繼承等】
- PHP 對(duì)象繼承原理與簡(jiǎn)單用法示例
相關(guān)文章
PHP面向?qū)ο蠓治鲈O(shè)計(jì)的61條軍規(guī)小結(jié)
你不必嚴(yán)格遵守這些原則,違背它們也不會(huì)被處以宗教刑罰。但你應(yīng)當(dāng)把這些原則看成警鈴,若違背了其中的一條,那么警鈴就會(huì)響起 。2010-07-07PHP Session條件競(jìng)爭(zhēng)超詳細(xì)講解
這篇文章主要介紹了PHP Session條件競(jìng)爭(zhēng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-12-12php 編寫安全的代碼時(shí)容易犯的錯(cuò)誤小結(jié)
PHP是個(gè)偉大的web開(kāi)發(fā)語(yǔ)言,靈活的語(yǔ)言,但是看到php程序員周而復(fù)始的犯的一些錯(cuò)誤。我做了下面這個(gè)列表,列出了PHP程序員經(jīng)常犯的10中錯(cuò)誤,大多數(shù)和安全相關(guān)??纯茨惴噶藥追N2010-05-05PHP運(yùn)行出現(xiàn)Notice : Use of undefined constant 的完美解決方案分享
今天修改公司的網(wǎng)站,提示Notice : Use of undefined constant ,通過(guò)下面的方法解決了,最好是error_reporting(0);不需要更改配置2012-03-03PHP進(jìn)行批量任務(wù)處理不超時(shí)的解決方法
這篇文章主要介紹了PHP進(jìn)行批量任務(wù)處理不超時(shí)的解決方法,結(jié)合實(shí)例形式簡(jiǎn)單分析了php結(jié)合ajax進(jìn)行異步處理實(shí)現(xiàn)批量任務(wù)不超時(shí)的相關(guān)技巧,需要的朋友可以參考下2016-07-07php通過(guò)header增加Key、Sign和Timestamp實(shí)現(xiàn)鑒權(quán)機(jī)制的流程步驟
在現(xiàn)代Web應(yīng)用程序中,鑒權(quán)是確保只有合法用戶能夠訪問(wèn)資源的關(guān)鍵部分,在PHP中,你可以通過(guò)在HTTP請(qǐng)求的Header中添加Key、Sign和Timestamp來(lái)實(shí)現(xiàn)鑒權(quán)機(jī)制,需要的朋友可以參考下2023-10-10php精確的統(tǒng)計(jì)在線人數(shù)的方法
這篇文章主要介紹了php精確的統(tǒng)計(jì)在線人數(shù)的方法,需要的朋友可以參考下2015-10-10