繼承:
從一個現有的類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個訪問位置:類內部,繼承關係類的內部;類外部;
總結:
代表父類。
常常在構造方法中使用,以代表父類來執行父類的方法(此時可能執行的是父類的靜態方法或實例方法)
1:他們都有這個特性:子類沒有,則自動會調用父類,子類有,則不會自動調用父類;
2:子類中,可以人爲調用父類的同類方法;
基本概念:
子類定義跟父類的同名屬性或方法;
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;
}
}
封裝性:
就是將一個類中的成員,設計爲“儘量少地”對外開放其訪問權限的一種指導原則;