您好,登錄后才能下訂單哦!
這篇文章主要為大家詳細(xì)介紹了關(guān)于PHP面向?qū)ο蟮睦^承講解,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
一、簡(jiǎn)介
?1、繼承是從一個(gè)基類得到一個(gè)或多個(gè)類的機(jī)制,可以實(shí)現(xiàn)對(duì)類的復(fù)用
?2、子類將繼承父類的屬性和方法,同時(shí)可以擴(kuò)展父類
二、如何繼承一個(gè)類
?1、PHP是單繼承的,一個(gè)類只可以繼承一個(gè)父類,但一個(gè)父類卻可以被多個(gè)子類所繼承。
?2、子類不能繼承父類的私有屬性和私有方法
?3、類的方法可以被繼承,類的構(gòu)造函數(shù)也能被繼承
?4、繼承的方法:使用extends關(guān)鍵字
//定義一個(gè)基類 class Book{ public $name; public $price; private $page; public function __construct($name){ $this->name = $name; } public function getName(){ return $this->name; } } //定義一個(gè)子類,并繼承基類 class NoteBook extends Book{ } //實(shí)例化子類,并繼承基類構(gòu)造方法 $notebook = new NoteBook('book'); //子類繼承的屬性 echo $notebook->name;//結(jié)果為book //子類繼承的屬性 echo $notebook->getName();//結(jié)果為book //子類不能訪問基類的私有屬性 echo $notebook->page; //錯(cuò)誤
三、如何繼承一個(gè)類
?1、可以在類的屬性和方法前面加上一個(gè)修飾符,來對(duì)類進(jìn)行一些訪問上的控制
?2、private : 不能直接被外部調(diào)用,只能在當(dāng)前類的內(nèi)部調(diào)用
?3、protected : 修飾的屬性和方法只能被當(dāng)前類內(nèi)部或子類調(diào)用,外界無法調(diào)用
?4、public : 修飾的屬性和方法,可以被無限制地調(diào)用
四、重寫
?1、如果從父類繼承的方法不能滿足子類的需求時(shí),可以對(duì)其進(jìn)行改寫,這個(gè)過程叫方法的重寫。
?2、子類中覆蓋的方法,不能使用比父類被覆蓋方法更嚴(yán)格的訪問權(quán)限。
?3、父類的構(gòu)造方法,也可以重寫。
//定義一個(gè)子類,并繼承基類 class NoteBook extends Book{ //覆寫基類的方法 public function getName(){ return 'The book name is'.$this->name; } }
五、parent:: 關(guān)鍵字
?1、使用parent::來引用父類的方法,同時(shí)也可以用于調(diào)用父類中定義的成員方法。
public function getName(){ //調(diào)用父類的方法 return 'The book name is '.parent::getName(); }
以上就是關(guān)于PHP面向?qū)ο蟮睦^承講解的簡(jiǎn)略介紹,當(dāng)然詳細(xì)使用上面的不同還得要大家自己使用過才領(lǐng)會(huì)。如果想了解更多,歡迎關(guān)注億速云行業(yè)資訊頻道哦!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。