物件導向的三大特徵:封裝、繼承、多型
繼承:0.類的繼承性就是從父類派生(繼承
)出乙個子類,擁有了父類的全部屬性和方法
1.繼承了父類非私有的屬性(私有屬性可以檢視,但是不可以呼叫)
2.繼承**格式(例:父類
:[ class parent ] class son(
子類) extends(
繼承函式
) parent{})
3.如果乙個子類的方法名和父類的方法名相同,那麼子類的方法自動覆蓋了父類的方法。(如果呼叫父類的方法,還是顯示原來父類的內容,子類和父類是兩個不同的類了)
4.如果子類繼承之後想用父類的方法,必須要在方法體內加乙個parent::方法()或者
$this->
方法(),推薦使用第乙個種,因為第二種容易使子類和父類結構上不清。
5.如果子類和父類的方法名是一樣的,那麼parent::方法()是呼叫父類的方法,
$thsi->
方法()是呼叫子類的方法 6.
對於父類的屬性的引用方法是:$this->屬性。屬性是不能區別是父類還是子類的。
(注意)
7.如果子類沒有繼承父類的構造和構析,則自動繼承父類的構造和構析
8.如果子類繼承了構造和構析,則不繼承父類的構造和構析
優點:1.復用**
2.支援設計模式(不了解)
final:
1.如果父類class 前新增
final
,則不可以被繼承
2.如果父類方法前新增final,則方法不可以被修改
類常量:
1.關鍵字:const;
2.const 常量名(大寫
) =
常量值;
3.類內呼叫
a) 類名::常量
b) $this::常量
c) static::常量
d) self::常量
4.類外呼叫:
a) 類名::常量
b) 物件::常量
靜態屬性
1.靜態屬性就是在屬性前加了乙個static
2.靜態屬性不完全屬於物件(就是不可以直接呼叫)
靜態方法
作用:1.計算物件個數
2.單例設計模式
3.不用例項化就可以呼叫
4.效率是普通的4倍(還沒有體驗到)
5.這裡方法結束後要返回值(return)
魔術方法
1.__get(*);//要加上引數
1. 讀取不可以訪問屬性
2. 屬性的值或者不返回(需要
return)
3. 引數是屬性名
2.__set();//要加上引數
1. 更改不可訪問屬性
2. 引數是屬性名或者是屬性值
3. 沒有返回值(沒有return) 3.
__isset();
1. 當empty或者
isset
訪問不可訪問屬性時
2. 引數是屬性值
3. 返回是布林型
4.__unset();
1. 當unset()不可訪問屬性時
2. 引數是屬性名
3. 返回值沒有,不需要return
5.__call();
1. 呼叫乙個不可訪問的方法時
2. 方法名和引數列表(陣列)
3. 自定義
6.__callstaitc();
1. 呼叫乙個不可訪問的靜態方法時
2. 方法名和引數列表(陣列)
3. 自定義
php物件導向 繼承
1 繼承是從乙個基類或者父類得到乙個或者多個派生類,也叫作子類的機制。2 建立繼承樹首先找到現有基類元素不適合放在一起的,或者不需要特殊處理的,一般化。3 子類預設繼承父類所有的public和protected方法,不繼承private方法或屬性 構造方法與繼承 1 構造方法需要傳參給父類方法。2 ...
PHP物件導向 繼承
繼承是指子類可以繼承乙個或多個父類的屬性和方法,並可以重寫或新增新的屬性或方法。通過繼承已有的類,可以逐步擴充類的功能,提高 的可重用性。關鍵字 extends php中使用關鍵字extends可實現類的繼承 語法格式 class 子類名 extends 父類名 注意 php不支援多重繼承,即乙個子...
PHP物件導向繼承(二)
原以為多型是乙個什麼樣複雜的概念,其實很簡單。多型就是指方法的重寫,定義乙個父類 介面 各個子類不同,但必須有介面所定義的方法,因此,這些應用統一介面的類就都有介面中定義的規範,這樣就滿足了介面所定的要求。物件序列化 序列化 1 將物件轉成字串 不用看懂 序列化 2 將字串轉會物件 反序列化 注意 ...