標籤:ace 否則 實現 許可權 子類 需要 sel 成員 面向
物件導向三大特徵:
封裝、繼承、多態
類:
類(屬性、方法)、對象、方法覆蓋、
靜態(屬性/方法)靜態成員被這個類的每個執行個體對象所共用,可以用self訪問
在類裡面定義常量使用的是“const”這個關鍵字,用“const”修飾的成員屬性的訪問方式和“static”修飾的成員訪問的方式差不多,也是使用“類名”,在方法裡面使用“self”關鍵字。但是不用使用“$”符號,也不能使用對象來訪問。
抽象類別
抽象方法,所謂的沒有方法體指的是,在方法聲明的時候沒有大括弧以及其中的內容,而是直接在聲明時在方法名後加上分號結束,另外在聲明抽象方法時還要加一個關鍵字“abstract”來修飾;
只要一個類裡面有一個方法是抽象方法,那麼這個類就要定義為抽象類別,抽象類別也要使用“abstract”關鍵字來修飾;
抽象類別不能產生執行個體對象
子類必須把父類中的抽象方法全部都實現,否則子類中還存在抽象方法,那麼子類還是抽象類別,還是不能執行個體化類;
介面
PHP與大多數物件導向程式設計語言一樣,不支援多重繼承。也就是說每個類只能繼承一個父類。為瞭解決這個問題,PHP引入了介面,介面的思想是指定了一個實現了該介面的類必須實現的一系列方法。介面是一種特殊的抽象類別,抽象類別又是一種特殊的類,所以介面也是一種特殊的類,為 什麼說介面是一種特殊的抽象類別呢?如果一個抽象類別裡面的所有的方法都是抽象方法,那麼我們就換一種聲明方法使用“介面”;也就是說介面裡面所有的方法必須 都是聲明為抽象方法,另外介面裡面不能聲明變數(但可聲明常量constant),而且介面裡面所有的成員都是public許可權的。所以子類在實現的時候 也一定要使用public許可權實限。
聲明一個類的時候我們使用的關鍵字是“class”,而介面一種特殊的類,使用的關鍵字是“interface”;
因為介面是一種特殊的抽象類別,裡面所有的方法都是抽象方法,所以介面也不能產生執行個體對象; 它也做為一種規範,所有抽象方法需要子類去實現。
我們可以使用”extends”關鍵字讓一個介面去繼承另一個介面
這個抽象類別還要有子類把它所有的抽象方法都實現才行;
PHP物件導向編程