您好,登錄后才能下訂單哦!
這篇“php中有限繼承的示例分析”除了程序員外大部分人都不太理解,今天小編為了讓大家更加理解“php中有限繼承的示例分析”,給大家總結(jié)了以下內(nèi)容,具有一定借鑒價(jià)值,內(nèi)容詳細(xì)步驟清晰,細(xì)節(jié)處理妥當(dāng),希望大家通過這篇文章有所收獲,下面讓我們一起來看看具體內(nèi)容吧。
php是一個(gè)嵌套的縮寫名稱,是英文超級文本預(yù)處理語言,它的語法混合了C、Java、Perl以及php自創(chuàng)新的語法,主要用來做網(wǎng)站開發(fā),許多小型網(wǎng)站都用php開發(fā),因?yàn)閜hp是開源的,從而使得php經(jīng)久不衰。
定義:有限繼承
,指子類
在繼承父類
的成員的時(shí)候,并非繼承所有內(nèi)容,而是繼承并使用父類部分內(nèi)容。 通俗的理解就是,公司的上一任CEO在離任時(shí),準(zhǔn)備把公司的一些事物交接給現(xiàn)任CEO,交接的文件,工作內(nèi)容都是可以書面化記錄下來隨時(shí)查閱,但是對于一些工作的見解這些是沒辦法交接的,這就是現(xiàn)任CEO對對上任CEO的有限繼承。
1.繼承內(nèi)容:PHP中繼承是子類繼承父類所有的公有成員
、受保護(hù)成員
和私有屬性
,不能繼承父類的私有方法。
<?php class A{ public $name='張三'; protected $sex='man'; private $age='25'; public function getName(){ echo $this->name."<br>"; } protected function getSex(){ echo $this->sex."<br>"; } private function getAge(){ echo $this->age."<br>"; } } class B extends A{ public function getA(){ $this->getName(); $this->getSex(); $this->getAge();//父類私有方法無法繼承 } } $a=new B(); var_dump($a); /*object(B)#1 (3) { ["name"]=> string(6) "張三" ["sex":protected]=> string(3) "man" ["age":"A":private]=> string(2) "25" } */ ?>
2.受保護(hù)繼承protected
protected
關(guān)鍵字的產(chǎn)生本身就是純用于繼承的,表示允許被子類在子類內(nèi)部訪問的意思,而不允許被外部直接訪問。
<?php class A{ public $name='張三'; protected $sex='man'; private $age='25'; public function getName(){ echo $this->name."<br>"; } protected function getSex(){ echo $this->sex."<br>"; } private function getAge(){ echo $this->age."<br>"; } } class B extends A{ public function getA(){ $this->getName(); $this->getSex(); } } $a=new B(); var_dump($a); echo "<br>"; //$a->getSex(); //: Call to protected method A::getSex() from context 不能在外部訪問 ?>
小提示:訪問父類私有成員:子類若想訪問父類私有成員,那么前提是父類提供公有或者受保護(hù)的方法給子類訪問(一般不建議使用,否則設(shè)置私有的意義就沒有了),。
3.靜態(tài)成員(類常量)
也遵循繼承規(guī)則(PHP繼承本質(zhì)是對象),只是訪問方式是由類進(jìn)行訪問。
class Fu{ const NAME = '人'; public static $count = 0; protected static $type = array('黑','黃','白'); public static function getCount(){ echo self::NAME; echo self::$count; } protected static function getType(){ print_r(self::$type); } } class Zi extends Fu{ //依然需要子類中訪問受保護(hù)成員 public static function getFu(){ Fu::getType(); } } echo Zi::$count; //允許直接訪問 Zi::getCount(); //訪問父類靜態(tài)方法 Zi::getFu(); //利用子類公有方法訪問父類受保護(hù)成員
4.構(gòu)造方法
和析構(gòu)方法
也可以被子類繼承,此時(shí)需要注意子類對象實(shí)例化時(shí)對應(yīng)的父類構(gòu)造方法
的參數(shù)。
//父類 class Fu{ private $money; public function __construct($money){ $this->money = $money; } public function __destruct(){ echo 'die'; } } //子類繼承 class Zi extends Fu{} //子類實(shí)例化:自身是空類,沒有指定構(gòu)造方法 //$m = new Zi(); //錯(cuò)誤:缺少參數(shù),因?yàn)闀?huì)自動(dòng)調(diào)用父類構(gòu)造方法 $m = new Zi(100); //正確
感謝你的閱讀,希望你對“php中有限繼承的示例分析”這一關(guān)鍵問題有了一定的理解,具體使用情況還需要大家自己動(dòng)手實(shí)驗(yàn)使用過才能領(lǐng)會(huì),快去試試吧,如果想閱讀更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。