1. 程式人生 > >PHP面向對象 封裝與繼承

PHP面向對象 封裝與繼承

php封裝 無法 被子 知識 epo 關鍵詞 分享 zha set

知識點:

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面向對象 封裝與繼承