PHP面向對象 封裝與繼承
知識點:
PHP封裝三個關鍵詞:
一、public 公有的,被public修飾的屬性和方法,對象可以任意訪問和調用
二、private 私有的,被private修飾的屬性和方法,只能在類內部的方法可以進行調用,或者被子類重寫後用public才可以隨意調用
三、protected 受保護的,被protected修飾的屬性和方法,在父類和子類的方法都可以訪問調用,不支持對象外部訪問調用
PHP繼承概念
PHP子類可以通過extends繼承父類的屬性和方法,再原有基礎上添加或者重寫屬性方法,註意:PHP是單繼承,即一個父類只能有一個子類,如果想一個父類被多個子類繼承,需要使用接口。
一、子類繼承父類的屬性和方法,並非全部,被private修飾的方法和屬性無法繼承
二、子類方法或屬性名如果與父類方法名一致,則進行了對遠方法和屬性的重寫
三、關鍵詞final 修飾的類名或方法無法被繼承或重寫
代碼:
<?php
header("Content-type:text/html;charset=utf-8");
error_reporting(E_ALL);
class people{
public $name;
public $age;
public function __construct($name,$age){
$this->name = $name;
$this->age = $age;
}
public function tellname(){
echo ‘我的名字是‘.$this->name;
}
private function tellage(){
echo ‘我是年齡是‘.$this->age;
}
}
$zhangsan = new people(‘張三‘,20);
$zhangsan->tellname();//輸出成功
//$zhangsan->tellage();提示致命錯誤
echo "<br>";
class student extends people{
public $class;
public $sex;
public function tellname(){
echo ‘大家好,我的名字是‘.$this->name;
}
public function tellage(){
echo ‘我的歲數是‘.$this->age;
}
}
$xiaoming = new student(‘小明‘,15);
$xiaoming->tellname();//輸出成功
$xiaoming->tellage();//重寫後輸出成功
?>
頁面提示:
PHP面向對象 封裝與繼承