<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                extends繼承 >[danger]class 子類名 extends 父類名{...} 1.子類繼承了父類,繼承所有的屬性和方法,但是私有屬性和方法不可以調用 2.子類可以重寫父類中的屬性和方法,直接重新定義屬性和方法 ?3.調用規則: | | 類外部 | 類內部 | 子類 | | --- | --- | --- | --- | | public | 可以 | 可以 | 可以 | | protected? | **不可以**? | 可以? | **可以**| | private? | **不可以** | 可以 | **不可以** | ??????????????????? ?? ??? ? ????????? ?????? ???? ???? ?? ???? ?????????? ???? 4.如果父類定義方法時使用了 final,則該方法不可被覆蓋(有固定不變的方法用final修飾)。可以**通過 parent:: 來訪問被覆蓋的方法或屬性**。同樣如果一個類被聲明為 final,則不能被繼承 父類定義了析構函數,如果子類也定義了析構函數那么父類的析構函數將不被繼承,但是可以通過 **:parent::父類函數 或 父類名::父類函數調用此析構函數** **5.只能繼承一個父類,不能同時繼承多個父類** ``` // 定義父類 class Kang { ? public $name = '玄燁'; ? protected $country = '清朝'; ? private $wife = '赫舍里'; ? public function info() ? { echo "{$this->name}是{$this->country}的皇帝,她的老婆的是{$this->wife}"; ? } } // 定義子類 class Yong extends Kang { } // 實例化Yong $y = new Yong; // 調用屬性 echo $y->name;//輸出:玄燁是清朝的皇帝,她的老婆的是赫舍里 // echo $y->country;//Fatal error: Cannot access protected property致命錯誤:無法訪問受保護的屬性 // echo $y->wife;//Notice: Undefined property:報未定義的屬性 // 方法 $y->info(); echo $y->info(); echo ''; var_dump($y); /* object(Yong)#1 (3) { ["name"]=> string(6) "玄燁" ["country":protected]=> string(6) "清朝" ["wife":"Kang":private]=> string(9) "赫舍里" } 從打印的$y和echo $y->info();可以看出子類繼承了父類,把所有的屬性和方法全部繼承下來但是屬性和方法的值沒有改變;如果我們要想子類的值那么就涉及到子類的覆蓋 */ ``` **例子2 子類的覆蓋:** ``` class Kang { ?public $name = '玄燁'; ?protected $country = '清朝'; ?private $wife = '赫舍里'; ?public function info() ?{ ??echo "{$this->name}是{$this->country}的皇帝,他的老婆是{$this->wife}"; ?} } class Yong extends Kang { ?// 子類繼承了父類,要更改對應的屬性(直接重寫) ?public $name = '四爺'; ?protected $country = '大清帝國'; ?private $wife = '甄嬛'; ?// 通過定義相同名字的方法來重寫父類方法 ?public function info() ?{ ??echo "{$this->name}的老婆是{$this->wife}"; ?} } // 實例化Yong類 $y = new Yong; var_dump($y); $y->info(); ``` 例子3: ``` class Kang { ???? public $name = '玄燁'; ???? protected $country = '清朝'; ???? private $wife = '赫舍里'; } class Yong extends Kang { ?public function getInfo() ?{ ???? ?echo "{$this->name}是{$this->country}的皇帝"; ?} ?public function getWife() ?{ ????? echo "{$this->name}的老婆是{$this->wife}"; ?} } // 實例化Yong類 $y = new Yong; // 調用getInfo() // $y->getInfo();?// 玄燁是清朝的皇帝 /* 子類繼承了父類,可以獲取父類中的公有屬性和受保護的屬性 子類可以繼承下來私有的屬性,但是可看不可摸(調用) var_dump($y);//object(Yong)#1 (3) { ["name"]=> string(6) "玄燁" ["country":protected]=> string(6) "清朝" ["wife":"Kang":private]=> string(9) "赫舍里" } $y->getWife();?// 玄燁的老婆是(報Notice錯誤) */ ``` 例子4:可以在父類的內部調用父類自己的私有方法 ``` class Kang { ?public $name = '玄燁'; ?private $wife = '赫舍里'; ?public function getInfo() ?{ ??echo "{$this->name}的老婆是{$this->wife}"; ?} } class Yong extends Kang{ } // 實例化Yong類 $y = new Yong; // getInfo()是$y(Yong)的方法,在這個方法內部,調用了父類的私有屬性,可以正常輸出 $y->getInfo(); ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看