php
中的類別是不允許多重繼承
的,而介面
可以多重繼承
,其次使用介面可以封裝
具體的實現,不向外部暴露具體的實現細節,只將接口
暴露出來,用戶也只能夠通過接口
訪問,這樣也有一定的安全性。
1.定義:接口,使用interface
關鍵字定義,與類別類似,專門用來規範一些共性類別必須實現的方法。
interface People{}
2.介面實作:介面是用來規範類別必須完成的事情,所以介面只能被類別實作:implements
。 (不允許實例化)
class Man implements People{}
3 .介面成員:介面中只能定義公有抽象方法
與介面常數
interface Animal{ const NAME = '人';//只允许有接口常量 public function eat();//接口方法必须为公有抽象方法 }
4.介面的實作類別必須實作所有的抽象方法
,或實作類別為抽象類別
#介面常數可以直接在實作類別中存取
interface Animal{ const NAME = '人'; public function eat(); } //实现接口 class Man implements Animal{ //必须实现接口所有抽象方法 public function eat(){ echo self::NAME; //可以访问接口常量 } } //抽象类实现接口 abstract class Ladyboy implements Animal{} //正常实现
類別成員,不允許重寫介面中的常數,不允許增加介面方法的控制權限interface Animal{ const NAME = '人'; public function eat(); } class Woman implements Animal{ //重写接口常量 const NAME = '女人'; //错误:不允许重写接口常量 //强化接口方法控制 private function eat(){} //错误:接口方法不允许使用其他访问修饰限定符,必须使用public }
:
extends,而且介面可以多繼承介面interface Plant{ public function lightning(); } interface Animal{ public function eat(); } //单继承 interface Man extends Animal{} //多继承 interface Apple extends Plant,Animal{}
以上是特立獨行的世外高人-php中的interface的詳細內容。更多資訊請關注PHP中文網其他相關文章!