溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何理解PHP類的繼承

發(fā)布時(shí)間:2021-10-18 17:00:58 來(lái)源:億速云 閱讀:134 作者:柒染 欄目:編程語(yǔ)言

如何理解PHP類的繼承,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

PHP類的繼承在PHP語(yǔ)言的學(xué)習(xí)中是一個(gè)比較重要的知識(shí)點(diǎn)。那么我們?cè)撊绾握_的學(xué)習(xí)PHP類的繼承呢?在PHP面向?qū)ο缶幊汤?,類的繼承永遠(yuǎn)是最關(guān)鍵的。

這就像人類生兒育女一樣(為什么一定要生兒育女呢,難道就是為了防老!不得而知呀),你把自己的一些基因和你老婆的基因各拿出來(lái)一些,再生成一個(gè)新的個(gè)體,這個(gè)新的個(gè)性一定會(huì)包含你們兩個(gè)人身上的特征,這就是生物上關(guān)于遺傳(繼承)的一個(gè)解說(shuō)。在編程的世界是這個(gè)遺傳就是繼承!

首先在了解了繼承的一些活生生的原理后,我想再來(lái)看PHP類的繼承是不是不再那么神秘?;蛟S它本來(lái)就不神秘,是因?yàn)槲覀冏约禾珡?fù)雜了吧。要有繼承就得有一個(gè)“根源”,這“根源”你可能想像你以后生了兒子或者女兒,他們會(huì)從你這里得到一些“東西(屬性和方法)”,這樣你的“后代”就是持有你的(根源)所有一些特征了。下面通過(guò)語(yǔ)法來(lái)描述一下這個(gè)在PHP的面向?qū)ο笾惺窃趺幢磉_(dá)吧(不可能像人類那么直接啦,結(jié)婚,過(guò)段時(shí)間你的后代就產(chǎn)生了)

1.產(chǎn)生“根源”類(父類或者基類)

語(yǔ)法:class father{

}

1.產(chǎn)生“后代”(子類)

語(yǔ)法:class son extends father{

}

說(shuō)明:父類只是一個(gè)平常的類,要想有后代你只需要在平常類后加一個(gè)extends關(guān)鍵字就OK了,這樣你的子類只擁有了父類所有的屬性和方法了。其實(shí)就是這么簡(jiǎn)單罷了。

下面讓我們做點(diǎn)實(shí)際點(diǎn)事情吧,畢竟PHP類的繼承中定義一個(gè)父類和子類是要完成某個(gè)任務(wù)的吧!在這里這個(gè)任務(wù)比較單調(diào),就拿人來(lái)說(shuō),人有名字(屬性),人要睡覺(jué)還要吃飯(方法)。我們就用這個(gè)基本的任務(wù)要完成本節(jié)的知識(shí)吧。

< ?php   class father{   protected $name;   function __construct($name){   $this->name=$name;   }   function __destruct(){   echo "< p>{$this->name}也是要死的< br/>< /p>";   }   //這個(gè)就是所謂的構(gòu)造函數(shù),用來(lái)初始化   function go_to_sleeping(){   echo "< p>{$this->name}想睡覺(jué).< /p>";   }   function eat(){   echo "< p>{$this->name}想吃飯.< /p>";   }   }   class son extends father{   function playing(){   //小孩子會(huì)很調(diào)皮的,當(dāng)然他也是要吃要睡的生物   echo "< p>{$this->name}正在搗蛋...< /p>";   }   }   $your_father=new father("老爸");   $your_father->go_to_sleeping();   $your_father->eat();   $my_son=new son('寶貝');   $my_son->go_to_sleeping();   $my_son->eat();   $my_son->playing();   ?>   < ?php  class father{  protected $name;  function __construct($name){  $this->name=$name;  }  function __destruct(){  echo "< p>{$this->name}也是要死的< br/>< /p>";  }  //這個(gè)就是所謂的構(gòu)造函數(shù),用來(lái)初始化  function go_to_sleeping(){  echo "< p>{$this->name}想睡覺(jué).< /p>";  }  function eat(){  echo "<p>{$this->name}想吃飯.</p>";  }  }  class son extends father{  function playing(){  //小孩子會(huì)很調(diào)皮的,當(dāng)然他也是要吃要睡的生物  echo "< p>{$this->name}正在搗蛋...< /p>";  }  }  $your_father=new father("老爸");  $your_father->go_to_sleeping();  $your_father->eat();  $my_son=new son('寶貝');  $my_son->go_to_sleeping();  $my_son->eat();  $my_son->playing();  ?>

解析:在我們的***個(gè)使用繼承的范例里使用了PHP的構(gòu)造函數(shù)中所提到的構(gòu)造函數(shù)和PHP類的封裝中的關(guān)鍵字,如果有什么不明白的就去看看吧!我可不想再多說(shuō)了,中午沒(méi)想睡覺(jué)呀.說(shuō)說(shuō)這段小程序吧。

在類的father里,我們定義了一般的特征,比如人的名字,人要吃飯和睡覺(jué),然后在它的子類(后代)我們定義一個(gè)個(gè)性化的方法(playing),畢竟人與人之間是有不同的地方吧。我們使用構(gòu)造函數(shù)來(lái)初始化這個(gè)人名,當(dāng)然也使用了析構(gòu)函數(shù)來(lái)“消滅”掉對(duì)象,但你可能沒(méi)有發(fā)現(xiàn)在子類里內(nèi)是沒(méi)有構(gòu)造函數(shù)和析構(gòu)函數(shù)的,所以子類是繼承了父的所有方法,要不然你怎么能$my_son->go_to_sleeping();這樣調(diào)用呢,這就是PHP類的繼承了。

關(guān)于如何理解PHP類的繼承問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI