### 概述
接口就是一個對象對外的公開(public)的操作方法!在PHP中定義一個接口,其實就是一種純粹的規范或規定,規定該接口的下級類必須要“實現”的公共方法!接口不是類!接口是類的規范,類又是對象的規范!
### 成員
在一個接口中,只能出現兩種成員:
接口常量:其實就是普通的常量,只不過是出現在接口中而已!
抽象方法:沒有方法體的方法,但是此時,抽象方法必須聲明為public(與抽象類中的抽象方法不同)
### 語法
~~~
interface 接口名{}
~~~
### 思考
為什么這里的抽象方法不需要使用abstract關鍵字?
因為接口中的方法只能是抽象方法,不能是其他的普通方法!不會造成混淆!
### 實現接口
當一個類“實現”一個接口的時候,也只有兩種選擇:
1. 實現該接口中所有的公開的抽象方法(完善方法體)
2. 如果該類沒有實現接口中的部分(或全部)公開的抽象方法,就應該把該類聲明成抽象類,然后等待更下一級的類去實現!此時,沒有被實現的方法最好繼續聲明成抽象方法!
### 接口與抽象類比較
1. 接口不是類,但是抽象類是類 .
2. 從邏輯或結構上看,接口可以看成是抽象類的一個“子集”,比抽象類更“抽象”,只有抽象方法沒有其他的普通的方法 .
3. PHP不支持多繼承,但是,支持多實現!也就是說,一個類可以同時實現多個接口,這有是接口與抽象類最本質的區別 .
4. 4, 接口與抽象類都可以作為其他類的規范,都可以規定下級類的內部結構,但是在真實的項目中,接口使用的要多一些 .
- PHP加密技術
- md5加密
- Crypt加密
- 函數
- 概述
- 強類型參數
- 可變參數列表
- 值傳遞&引用傳遞
- 變量作用域
- 可變函數
- 嵌套函數
- 遞歸函數
- 匿名函數(閉包)
- 面向對象
- 概念
- 類
- 對象的傳值
- 對象的克隆
- 構造方法
- 析構方法
- 克隆方法
- $this
- 類常量
- 靜態屬性
- 靜態方法
- 繼承
- 重寫
- 重載
- 概述
- 屬性重載
- 概述
- __set()
- __get()
- __unset()
- __isset()
- 方法重載
- 概述
- __call()
- __callstatic()
- 封裝
- 最終類
- 抽象類
- 接口
- 對象的序列化與反序列化
- __sleep()
- __wakeup()
- 其他魔術方法
- 對象的遍歷
- 類和對象相關函數
- 錯誤
- 概述
- 設置錯誤級別
- trigger_error()觸發錯誤
- 處理PHP中的錯誤
- 異常
- 概述
- 自定義異常類
- 自定義文件寫入異常類
- 記錄和發送異常信息
- 使用觀察者模式處理異常信息
- 自定義異常處理器
- 設計模式
- 創建型
- 單例模式
- 工廠模式
- 原型模式
- 結構型
- 注冊樹模式
- 適配器模式
- 數據映射模式
- 裝飾器模式
- 代理模式
- 行為型
- 策略模式
- 觀察者模式
- 迭代器模式
- 網絡
- cURL
- Oauth2.0
- QQ第三方登錄
- TCP/IP協議
- 概述
- HTTP協議
- 概述
- HTTP請求協議
- HTTP響應協議
- WebSocket
- 安裝擴展
- Redis
- Socket
- 計算機通信
- socket簡介
- PHP操作socket
- TCP
- HTTP服務端
- WebSocket
- PHP7
- 生成器yield
- 異常finally
- CGI和FPM
- php有用命令
- 內存