1. Home
  2. /
  3. Web technology
  4. /
  5. PHP
  6. /
  7. OOP
  8. /
  9. [ PHP ] –...

[ PHP ] – OOP 7 物件 繼承後 的 protected 保護 與 overwrite 覆載

評等結果
點擊便能為這篇文章進行評等!
[評等總次數: 0,平均評等: 0]

再來你會發現繼承會發生一些你沒想到的事情,不是說好爸爸的錢可以兒子用嗎?但你忘記問老爸保險箱的密碼是多少了;怎麼把錢拿出來花。子承父業後第二代通常會改變一前一代的一些做法,爸爸在巷口開水果攤,兒子繼承後當然要搞點不一樣的在網路上賣水果才叫潮。

//extends 繼承 你可以想成遺傳 你爸爸有的一些特徵 在你的身上也會看到,但又沒有完全一樣(又不是複製人)
//protected 保護 生成類別後 只可以在 類別的內部 或是 繼承類別中 寫入讀取屬性的值
class People {
	private $height;//身高
	private $weight;//體重
	protected $sex;//姓別 要改成 保護 子類別才可以變更它的值
	function set_height($height1) { $this->height = $height1;}
	function set_weight($weight1) {$this->weight = $weight1;}
	function set_sex($sex1) {$this->sex = $sex1;}
	function get_height() {return $this->height;}
	function get_weight() {return $this->weight;}
	function get_sex() {return $this->sex;}
}
class People2 extends People { //People2 繼承了 people 內所有的屬性跟方法
	private $action;//動作
	function set_action($action1) {$this->action = $action1;}
	function get_action() {return $this->action;}
	//overwrite 覆載 就是重寫父類別內已經存在的方法
	function get_sex() {return ' 這是密秘不告訴你 ';}
}
$jeff = new People2();
$jeff->set_height(170);
$jeff->set_weight(65);
$jeff->set_sex('male');
$jeff->set_action('sit');
echo 'jeff 的身高是:';
echo $jeff->get_height();
echo '<br>jeff 的體重是:';
echo $jeff->get_weight();
echo '<br>jeff 的姓別是:';
echo $jeff->get_sex();
echo '<br>jeff 的動作是:';
echo $jeff->get_action();
//顯示結果
/*
jeff 的身高是:170
jeff 的體重是:65
jeff 的姓別是: 這是密秘不告訴你
jeff 的動作是:sit
*/

評等結果
點擊便能為這篇文章進行評等!
[評等總次數: 0,平均評等: 0]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *