和大多數物件導向的程式語言一樣,在PHP中是不支援多重繼承的。如果要實現多重繼承功能,可以透過介面。
介面的想法是:
指定一個實作了該介面的類別必須實作的一系列函數。一般,我們用interface來宣告一個接口,並在接口中宣告一些方法(即函數),注意只是宣告不用實作這個函式。然後,用class宣告一個類別並用implements去使用這個接口,再在類別中把接口中的宣告的方法進行實作。
一般定義方法如下:
介面定義:
[修饰符] interface 接口名 [extends 父接口名列表]{ [public] [static] [final] 常量; [public] [abstract] 方法; }
修飾符:可選,用於指定介面的存取權限,可選值為public。如果省略則使用預設的存取權限。
介面名稱:必選參數,用於指定介面的名稱,介面名稱必須是合法的Java識別碼。一般情況下,要求首字母大寫。
extends 父介面名稱清單:選用參數,用於指定要定義的介面繼承於哪個父介面。使用extends關鍵字時,父介面名為必選參數。
方法:介面中的方法只有定義而沒有實作。
實例:
接口定义: public interface CalInterface { final float PI=3.14159f;//定义用于表示圆周率的常量PI float getArea(float r);//定义一个用于计算面积的方法getArea() float getCircumference(float r);//定义一个用于计算周长的方法getCircumference() } 接口实现: public class Cire implements CalInterface { public float getArea(float r) { float area=PI*r*r;//计算圆面积并赋值给变量area return area;//返回计算后的圆面积 } public float getCircumference(float r) { float circumference=2*PI*r; //计算圆周长并赋值给变量circumference return circumference; //返回计算后的圆周长 } public static void main(String[] args) { Cire c = new Cire(); float f = c.getArea(2.0f); System.out.println(Float.toString(f)); } }
注意,如果沒有實作介面中指定的方法,將產生一個致命錯誤。
推薦PHP影片教學:PHP影片教學
以上是php一個類別可以實作多個介面嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!