PHP筆記10-day14

繼承:

基本概念

從一個現有的類A中,獲取其中的特徵信息,以構建另一個類B,這種現象就是繼承。

基本語法:

class  A{}

class  B extends  A { } //單繼承;

如果是多繼承,代碼類似這樣(其實php是不支持的):

class s B  extends  A1, A2, A3,..... {}

幾個基本概念

繼承:B繼承了A

派生:A派生出B

父類:基類,上級類,

子類:派生類,下級類,

單繼承:就是一個類只能從另一個類繼承特性的現象;

多繼承:就是一個類能夠從多個類繼承特性的現象;

擴展:子類在繼承父類的特徵信息的基礎上,再定義一些自己的特徵信息。

訪問控制修飾符

3個訪問控制修飾符,用於修飾屬性或方法:public, protected, private

3個訪問位置:類內部,繼承關係類的內部;類外部;

總結:


parent關鍵詞

代表父類。

常常在構造方法中使用,以代表父類來執行父類的方法(此時可能執行的是父類的靜態方法或實例方法)

 

構造方法和析構方法調用上級同類方法的問題

1:他們都有這個特性:子類沒有,則自動會調用父類,子類有,則不會自動調用父類;

2:子類中,可以人爲調用父類的同類方法;

覆蓋(override):

基本概念

子類定義跟父類的同名屬性或方法;

重寫的基本要求:

1,子類中重寫的屬性或方法,其訪問修飾符範圍不能更小(狹窄);

2,子類中重寫的方法,形參必須跟父類保持一致;

說明:

1,構造方法中的形參不受限制;

2,父類的私有成員其實是不能重寫;

最終類

就是一個不允許進行派生的類——即別的類不能以它作爲父類;

final  class  類名{。。。}

最終方法

就是一個定義好了之後不允許後代類去覆蓋的方法;

什麼叫設計模式?

其實就是針對某種問題所提出的(人們積累的)相應的解決方法的一般性經驗總結。

工廠模式

就是定義的一個類,它能夠根據傳遞過來的類的名稱,而“生產”這種類的對象。

class  Factory{

Static  function   GetObject( $類名 ){

return  new  $類名()

}

}

單例模式:

就是定義這樣一個類:它只能實例化自己的一個對象。

實現單例需要如下幾步:

class  Single{

//1步:私有化構造方法:

private  function  __construct(){} //保證外界不可以使用new來創建對象了

//2步:定義一個私有的靜態屬性,目標是爲了存儲該唯一對象,但其初始值爲null

private  static  $instance  = null;

//3步:定義一個靜態方法,從中判斷是否生成該唯一對象,並返回該唯一對象;

static  function   GetInstance(){

if(  !isset( self::$instance )  ){

self:: $instance  =  new  self();

return  self::$instance;

}

}

 

封裝性:

就是將一個類中的成員,設計爲“儘量少地”對外開放其訪問權限的一種指導原則;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章