溫馨提示×

溫馨提示×

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

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

php中有限繼承的示例分析

發(fā)布時(shí)間:2021-03-03 11:19:57 來源:億速云 閱讀:141 作者:清風(fēng) 欄目:編程語言

這篇“php中有限繼承的示例分析”除了程序員外大部分人都不太理解,今天小編為了讓大家更加理解“php中有限繼承的示例分析”,給大家總結(jié)了以下內(nèi)容,具有一定借鑒價(jià)值,內(nèi)容詳細(xì)步驟清晰,細(xì)節(jié)處理妥當(dāng),希望大家通過這篇文章有所收獲,下面讓我們一起來看看具體內(nèi)容吧。

php有什么用

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è)資訊頻道!

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

免責(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)容。

php
AI