淺談PHP物件導向的繼承

2020-07-16 10:05:53
本篇文章給大家介紹一下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();
}

推薦學習:PHP視訊教學

以上就是淺談PHP物件導向的繼承的詳細內容,更多請關注TW511.COM其它相關文章!