首頁  >  文章  >  後端開發  >  特立獨行的世外高人-php中的interface

特立獨行的世外高人-php中的interface

autoload
autoload原創
2021-03-12 14:13:052614瀏覽

    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{}		//正常实现
    5.實作介面的類別成員不允許重寫介面中的常數,不允許增加介面方法的控制權限

interface Animal{
    const NAME = '人';
    public function eat(); 
}
class Woman implements Animal{
    //重写接口常量
    const NAME = '女人';			  //错误:不允许重写接口常量
    
    //强化接口方法控制
    private function eat(){}		//错误:接口方法不允许使用其他访问修饰限定符,必须使用public
}
    6.介面可以繼承介面extends而且介面可以多繼承介面

interface Plant{
    public function lightning();
}

interface Animal{
    public function eat();
}
//单继承
interface Man extends Animal{}
//多继承
interface Apple extends Plant,Animal{}
推薦:php影片教學

####

以上是特立獨行的世外高人-php中的interface的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn