1. 程式人生 > >PHP面向物件的繼承

PHP面向物件的繼承

一、簡介

 1、繼承是從一個基類得到一個或多個類的機制,可以實現對類的複用
 2、子類將繼承父類的屬性和方法,同時可以擴充套件父類

二、如何繼承一個類

 1、PHP是單繼承的,一個類只可以繼承一個父類,但一個父類卻可以被多個子類所繼承。
 2、子類不能繼承父類的私有屬性和私有方法
 3、類的方法可以被繼承,類的建構函式也能被繼承
 4、繼承的方法:使用extends關鍵字

//定義一個基類
class Book{
	public $name;
	public $price;
	private $page;
	public function __construct($name){
		$this-
>name = $name; } public function getName(){ return $this->name; } } //定義一個子類,並繼承基類 class NoteBook extends Book{ } //例項化子類,並繼承基類構造方法 $notebook = new NoteBook('book'); //子類繼承的屬性 echo $notebook->name;//結果為book //子類繼承的屬性 echo $notebook->getName();//結果為book //子類不能訪問基類的私有屬性 echo $notebook->page
; //錯誤

三、如何繼承一個類

 1、可以在類的屬性和方法前面加上一個修飾符,來對類進行一些訪問上的控制
 2、private : 不能直接被外部呼叫,只能在當前類的內部呼叫
 3、protected : 修飾的屬性和方法只能被當前類內部或子類呼叫,外界無法呼叫
 4、public : 修飾的屬性和方法,可以被無限制地呼叫

四、重寫

 1、如果從父類繼承的方法不能滿足子類的需求時,可以對其進行改寫,這個過程叫方法的重寫。
 2、子類中覆蓋的方法,不能使用比父類被覆蓋方法更嚴格的訪問許可權。
 3、父類的構造方法,也可以重寫。

	//定義一個子類,並繼承基類
	class NoteBook
extends Book{ //覆寫基類的方法 public function getName(){ return 'The book name is'.$this->name; } }

五、parent:: 關鍵字

 1、使用parent::來引用父類的方法,同時也可以用於呼叫父類中定義的成員方法。

public function getName(){
	//呼叫父類的方法
	return 'The book name is '.parent::getName();
}