-
抽象性 將通用的資料和方法抽離出來形成一個抽象類
-
多型性
- php本身就是天生的多型語言
- 當一個函式接收到不同物件時,會自動的判斷並呼叫對應的方法
- 多型利於類的維護和擴充套件
-
繼承性
作用: 將通用的資料和方法抽離出來形成一個抽象類, 解決程式碼複用,便於維護
- 方法過載
- php不能使用傳統的過載方法
-
傳統的方法過載
function getName($name)
function getName($name, $params)
- 屬性過載
- 當給不存在的屬性賦值時,類虎自動動態建立相對應的屬性
- 禁止屬性過載,public function set(){} 方法裡面什麼都不寫
- 方法重寫
要求方法名和引數都一樣,引數型別也一樣,子類不能縮小父類訪問許可權 - 屬性重寫
子類不能縮小父類訪問許可權 - 繼承本質
子類與父類之間建立了查詢關係
抽象類
說明:當方法不確定具體實現功能的時候,可以定義為抽象類
- 細節
- 抽象類不能例項化
- 抽象類可以有非抽象屬性和方法
- 含抽象方法的類必須定義為抽象類
- 如果一個非抽象類繼承了抽象類,必須實現抽象類的所有方法
介面
作用:解決抽象類單一繼承的問題,可以多繼承,解決程式碼複用問題
- 細節
- 介面中的方法都是抽象方法,但不需要使用abstract來修飾
- 需實現介面中所有的抽象方法
- 介面中不能有普通成員屬性,但是可以有常量
- 介面可以多繼承
- 面向介面程式設計 (後面補充)
final關鍵字
作用:保護類不被繼承,及類方法不被重寫
- 細節
- 當類不希望被繼承時,可以定義為final類
- 當類方法不希望被重寫時,可以定義為final方法
- final不能修飾成員屬性
- final方法不能被重寫,但是可以被繼承
物件導向程式設計的相關技術
- 物件克隆技術 防止克隆,定義私有的魔術方法__clone()
- 物件遍歷 foreach
- php的內建標準類 new stdClass
- 資料型別轉物件和物件轉陣列的說明
- (object)$name; 強制型別轉換
- (array)$obj;物件轉陣列後,私有變數還是不能直接訪問
- 物件序列化和反序列化
- 序列化 serialize() 物件轉換為字串 會呼叫 __sleep()魔術方法
- 反序列化 unserialize() 已序列化的字串轉物件 會呼叫 __wakeup()魔術方法
總結
- 類中只有屬性和方法
- 普通成員方法可以訪問靜態屬性也可以訪問非靜態屬性
- 物件 instanceof 類名 用於判斷物件是不是某個類的物件例項
- 物件的連用
- 所有都是基於一次請求操作
複製程式碼,即可執行。 謝謝你的瀏覽,如有錯誤,歡迎指正哈!!!
本作品採用《CC 協議》,轉載必須註明作者和本文連結