#### PHP抽象類與接口的區別
##### 什么是抽象類
1. 定義為抽象的類不能被實例化。
2. 任何一個類,如果它里面至少有一個方法是被聲明為抽象的,那么這個類就必須被聲明為抽象的。被定義為抽象的方法只是聲明了其調用方式(參數),不能定義其具體的功能實現。
3. 繼承一個抽象類的時候,子類必須定義父類中的所有抽象方法;另外,這些方法的訪問控制必須和父類中一樣(或者更為寬松)。例如,某個抽象方法被聲明為受保護的,那么子類中實現的方法就應該聲明為受保護的或者公有的,而不能定義為私有的。此外方法的調用方式必須匹配,即類型和所需參數數量必須一致。例如,子類定義了一個可選參數,而父類抽象方法的聲明里沒有,則兩者的聲明并無沖突。
4. 這也適用于 PHP 5.4 起的構造函數。在 PHP 5.4 之前的構造函數聲明可以不一樣的.
##### 什么是接口類
1. 使用接口(interface),可以指定某個類必須實現哪些方法,但不需要定義這些方法的具體內容。
2. 接口是通過 interface 關鍵字來定義的,就像定義一個標準的類一樣,但其中定義所有的方法都是空的。
3. 接口中定義的所有方法都必須是公有,這是接口的特性。
4. 要實現一個接口,使用 implements 操作符。類中必須實現接口中定義的所有方法,否則會報一個致命錯誤。類可以實現多個接口,用逗號來分隔多個接口的名稱。
5. 實現多個接口時,接口中的方法不能重名。
6. 通過使用extends操作符,接口也可以繼承。
7. 類要實現接口,必須使用和接口中所定義的方法完全一致的方式,否則會導致致命錯誤.
區別:
1. 對接口的繼承使用implements,抽象類使用extends。
2. 接口中不可以聲明變量,但可以聲明類常量.抽象類中可以聲明各種變量。
3. 接口沒有構造函數,抽象類可以有。
4. 接口中的方法默認為public,抽象類中的方法可以用public,protected,private修飾。
5. 一個類可以繼承多個接口,但只能繼承一個抽象類。
- 數組
- 深拷貝
- 數組操作
- 交/并/合
- 差值
- 搜索
- 排序
- 貨幣
- 字符串
- 補全
- heredoc
- session
- 注銷
- 限時自動注銷
- 日期時間
- 日期時間
- 某月首尾
- 格式判斷
- 年齡計算
- 時間函數
- strtotime
- 版本升級
- $HTTP_RAW_POST_DATA
- 正則函數等
- 版本比較
- php5.3 PHP5.4 PHP5.5 php5.6 新特性
- PHP注釋
- URL地址
- 頁面超時
- 類方法
- 靜態方法
- 子類靜態方法
- 普通方法和靜態方法
- call_user_func 和 call_user_func_array
- 函數
- 動態函數
- 數組循環
- Math函數
- 取整
- 除數余數
- 運行模式
- CLI 模式
- 常用CLI命令
- 檢測環境支持php_cli模式?
- 調試
- 調試工具
- FirePHP
- ChromePHP
- 內置服務器
- 500 錯誤處理
- 命令行
- 遠程操作
- HTTP
- HTTP headers
- 用例
- 保留字
- 教程
- PHP實戰教程-0基礎快速入門
- 接口與抽象類
- 抽象類與接口的區別
- 魔術方法
- 私有屬性方法
- 構造/析構方法
- PHP Error 和 Logging 函數
- 類
- const