久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網
      最全最豐富的資訊網站

      PHP中面向對象之繼承

      本文目標:

      1、了解繼承的定義

      2、掌握繼承的好處

      (一)、定義

      PHP中面向對象之繼承

      我們仔細看上面一張圖,然后做一件事情,找出他們的共同點

      共同點:

      1、都擁有部分相同的屬性和方法

      2、他們都是人

      按照正常類的定義走,我們要實現(xiàn)以上2個類,我們得分別定義NBA球員這個類的所有屬性和方法,然后定義女主播類的時候,還得寫一遍重復的姓名,身高,體重等屬性和吃飯的方法,如果又有一個類比如叫學生,那意味著這些共同的屬性和共同的方法又得重復寫一遍,以此類推,代碼會有很多地方類似,這樣增加的代碼的冗余性,所以為了解決這種冗余性,為了讓代碼更簡潔,可重用性高,我們可以把這些共同的屬性和方法都寫到一塊去,然后讓每個類都去調用這個公共的屬性和方法,這樣維護起來是不是就更加方便了,而且代碼也更加簡潔了,那么這種做法我們就叫做繼承

      具體怎么做的呢,如下圖

      PHP中面向對象之繼承

      我們先創(chuàng)建了一個“人“的類,讓這個人都具有2個類都有的屬性和方法,再讓NBA球員和女主播都繼承 “人” 這個類

      PHP中面向對象之繼承

      概念:被繼承的類叫父類,比如人,繼承的類叫子類

      總結:什么是繼承,繼承是一種方法,用來提高代碼的可重用性和減少代碼的冗余性,就像現(xiàn)實生活中的遺傳一樣,子女都會繼承父母的部分基因,所以你一生下來你就是有人類的共同屬性和行為

      (二)、繼承的好處

      1、提高代碼的重用性,節(jié)約了編程的時間和代價

      父類中定義的屬性和方法就不需要子類中重復定義,子類只要繼承了父類,就擁有了父類中所有的屬性和方法

      2、對于同一個父類下的所有子類,調用他們的時候可以一視同仁

      比如不管是NBA球員還是女主播,因為他們都是人,所以我們調用他們的時候可以直接調用父類的方法,比如吃飯,而不用管這個類到底是NBA球員還是女主播

      3、子類可以修改調整父類定義的類成員

      a、我們稱為重寫(Overwrite)

      b、一旦子類修改好了,就按照子類定義的方法執(zhí)行

      這相當于變異

      學習任何東西我們既要知道其理論,還要有相關的理論實踐,其實所有的理論都是實踐得出來的,所以有的時候我一再強調,理論雖然很抽象,但是大家有了一定的實踐經驗后也要進行總結,總結一些言簡意賅,通俗易懂的“理論”,這個習慣培養(yǎng)好了以后,我相信很多知識大家能夠了解的更加透徹,同時更容易抓住事情的本質,這樣分析問題的能力也會得到提升。

      好了,既然要理論和實踐相結合,那么接下來,我們通過代碼進行實操演示,看看在代碼中具體是怎么實現(xiàn)繼承的

      (三)、具體代碼

      <?php /***  * 案例目標  * 1.掌握繼承的定義    2.掌握繼承的好處  */  //定義一個“人”類 class Human{     public $name = "";//姓名     public $height = "";//身高     public $weight = "";//體重      public function eat($food){         echo $this->name."在吃".$food."<br/>";     } } //女主播 class Anchors extends Human{     public $name = "";     public $stageName = "";     public function __construct( $name,$stageName ){         $this->name = $name;         $this->stageName = $stageName;     }     public function singing(){         echo "我是女主播,我會唱歌<br/>";     }     //重寫方法eat     public function  eat($food){         echo "我是女主播,我是邊唱歌邊吃{$food}<br/>";     } } //Nba球員類  class NbaPlayer extends Human{    //因為父類已經有了,所以就不需要再寫了,通過extends來實現(xiàn)     // public $name  = "";//姓名     // public $height = "";//身高     // public $weight = "";//體重      public $team = "";//團隊     public $playerName = "";//球員號碼      public function __construct( $name,$height,$weight,$team,$playerName ){         $this->name = $name;         $this->height=$height;         $this->weight = $weight;         $this->team = $team;         $this->playName = $playerName;         echo "構造函數(shù)執(zhí)行了,當前對象是{$this->name}<br/>";     }             //跑步     public function run(){         echo "跑步中<br/>";     }     //跳躍     public function jump(){         echo "跳躍<br/>";     }     //運球     public function dribble(){         echo "運球<br/>";     }      //傳球     public function pass(){         echo "傳球<br/>";     }     //投籃     public function shoot(){         echo "投籃<br/>";     }     //扣籃     public function dunk(){         echo "扣籃<br/>";     }     //重寫方法eat ,只要名稱和父類一樣就是代表重寫了不一定參數(shù)也要保持一樣     public function eat($food){         echo "我是Nba球員,我是站著吃飯,邊吃{$food}邊看球賽<br/>";     }  }  //測試,NBA球員,沒有直接定義name,身高,體重,現(xiàn)在輸出一下看結果有沒有  //創(chuàng)建喬丹對象  $jordon = new NbaPlayer("喬丹","1.98米","98公斤","公牛","23");  //輸出喬丹對象  echo "名稱= ".$jordon->name."<br/>";   //測試,NBA球員,沒有直接定義eat方法,現(xiàn)在輸出一下看結果有沒有  echo $jordon->eat("蘋果");  //證明第二個好處,只要是個人就可以調用它的eat方法  $linda = new Anchors("琳達","LD");  echo $linda->eat("蘋果");  //測試第三個好處是否真實  //思路1.為女主播和NBA球員2個類分別重寫eat方法 //    2.再次執(zhí)行2個對象的eat方法 //  會發(fā)現(xiàn)一旦子類重寫了父類的方法,那么就會調用子類自己的方法了,這里就大家自己寫下,因為上面我已經調用了eat方法,一旦重寫了,上面的結果會變  ?>

      通過上述代碼的演示,我們總結一下:

      1、extends 就是繼承,通過這個關鍵字可以實現(xiàn)子類繼承父類,共享父類的所有屬性和方法

      2、繼承代碼的其他特點:

      ● 在子類構造函數(shù)中也可以直接通過$this->來訪問

      ● 在php中extends 后面只能繼承一個類,不能用,來實現(xiàn)繼承多個類,否則會報錯

      總結:

      本文其實目標只有2個,知道繼承的定義和好處,最后我們通過代碼相信對繼承的好處有了更深的體會和理解

      贊(0)
      分享到: 更多 (0)
      網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號