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

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

//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
*/
!去下營經續永站本助幫能就下一點輕輕,話的您到助幫有章文的我果如 如果我的文章有幫助到您的話,輕輕點一下就能幫助本站永續經營下去!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。