面向對象三大特徵:編程
封裝、繼承、多態編程語言
類:post
類(屬性、方法)、對象、方法覆蓋、對象
靜態(屬性/方法)靜態成員被這個類的每一個實例對象所共享,能夠用self訪問blog
在類裏面定義常量使用的是「const」這個關鍵字,用「const」修飾的成員屬性的訪問方式和「static」修飾的成員訪問的方式差很少,也是使用「類名」,在方法裏面使用「self」關鍵字。可是不用使用「$」符號,也不能使用對象來訪問。繼承
在類外面定義常量使用的是「define」關鍵字接口
抽象類面向對象編程
抽象方法,所謂的沒有方法體指的是,在方法聲明的時候沒有大括號以及其中的內容,而是直接在聲明時在方法名後加上分號結束,另外在聲明抽象方法時還要加一個關鍵字「abstract」來修飾;class
只要一個類裏面有一個方法是抽象方法,那麼這個類就要定義爲抽象類,抽象類也要使用「abstract」關鍵字來修飾;變量
抽象類不能產生實例對象
子類必須把父類中的抽象方法所有都實現,不然子類中還存在抽象方法,那麼子類仍是抽象類,仍是不能實例化類;
接口
PHP與大多數面向對象編程語言同樣,不支持多重繼承。也就是說每一個類只能繼承一個父類。爲了解決這個問題,PHP引入了接口,接口的思想是指定了一個實現了該接口的類必須實現的一系列方法。接口是一種特殊的抽象類,抽象類又是一種特殊的類,因此接口也是一種特殊的類,爲 什麼說接口是一種特殊的抽象類呢?若是一個抽象類裏面的全部的方法都是抽象方法,那麼咱們就換一種聲明方法使用「接口」;也就是說接口裏面全部的方法必須 都是聲明爲抽象方法,另外接口裏面不能聲明變量(但可聲明常量constant),並且接口裏面全部的成員都是public權限的。因此子類在實現的時候 也必定要使用public權限實限。
聲明一個類的時候咱們使用的關鍵字是「class」,而接口一種特殊的類,使用的關鍵字是「interface」;
由於接口是一種特殊的抽象類,裏面全部的方法都是抽象方法,因此接口也不能產生實例對象; 它也作爲一種規範,全部抽象方法須要子類去實現。
咱們可使用」extends」關鍵字讓一個接口去繼承另外一個接口
這個抽象類還要有子類把它全部的抽象方法都實現才行;