溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP中接口interface的示例分析

發(fā)布時間:2021-10-26 15:11:22 來源:億速云 閱讀:162 作者:小新 欄目:編程語言

小編給大家分享一下PHP中接口interface的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

接口的聲明

接口既然是一種特殊的類,那就有它的聲明方法,稱為接口技術(shù)。我們在之前的學習中知道,正常類的聲明是使用“class”關(guān)鍵字來進行聲明的,接口既然特殊那就不會用正常的聲明方法,要通過“interface”關(guān)鍵字來實現(xiàn)接口的聲明。

聲明接口interface 關(guān)鍵字的語法格式如下:

interface 接口名稱{
// 常量成員
 // 抽象方法
}

其中需要注意的是:

  • 接口中所有的方法都是抽象方法,并且在方法前不需要使用abstract關(guān)鍵字進行修飾。因為默認權(quán)限是public公有的,所以在接口中不需要使用public訪問權(quán)限來進行修飾。

  • 接口中只能使用const關(guān)鍵字生命為常量類型的成員屬性,在接口中不能聲明變量。

  • 接口不能實例化為對象,接口可以直接使用接口名稱在接口外面獲取常量成員的值。

接下來通過示例來看一下,示例如下:

<?php
    interface Demo{
        const STUDY = '好好學習';
        const STUDY1 = '天天向上';
        function fun1();
        function fun2();
    }
    echo Demo::STUDY.'<br>';
    echo Demo::STUDY1;
?>

輸出結(jié)果:

PHP中接口interface的示例分析

由此我們便通過interface 關(guān)鍵字完成了接口的聲明。

接口的應(yīng)用

接口是不能進行實例化操作的,所以想要使用接口中的成員的話,就需要借助子類。我們通過implements關(guān)鍵字可以實現(xiàn)接口的繼承,要是有多個接口繼承的話,每個接口之間要使用,隔開。

在通過implements關(guān)鍵字繼承接口的同時,還可以使用extends關(guān)鍵字來繼承一個類??梢岳斫鉃?,可以在繼承一個類的同時實現(xiàn)多個接口,需要注意的是,一定要先使用extends繼承類再去使用implements實現(xiàn)多個接口。它的語法格式如下:

class 類名 extends 父類名 implements 接口一, 接口二, ..., 接口 n {
// 實現(xiàn)所有接口中的抽象方法
}

我們通過示例來看一下接口的應(yīng)用,示例如下:

<?php
    interface Demo{
        const STUDY = '好好學習';
        const STUDY1 = '天天向上';
        function fun1();
        function fun2();
    }
    class Website implements Demo{
        public function fun1(){
            echo self::STUDY.'<br>';
        }
        public function fun2(){
            echo self::STUDY1;
        }
    }
    $obj = new Website();
    $obj -> fun1();
    $obj -> fun2();
?>

輸出結(jié)果:

PHP中接口interface的示例分析

其中運行后需要注意的是:既然要通過子類繼承了接口中的方法,那么接口中的所有方法都必須在子類中實現(xiàn),否則 PHP 將出現(xiàn)錯誤信息。

不僅有上述實例的應(yīng)用,我們還可以使用 extends 關(guān)鍵字讓一個接口去繼承另一個接口,實現(xiàn)接口之間的擴展。在下面的示例中先定義一個接口 One,然后再定義一個接口 Two 來繼承 One:

示例如下:

    interface One{
        function fun1();
        function fun2();
    }
    interface Two extends One{
        function fun3();
        function fun4();
    }

還有就是如果需要使用抽象類去實現(xiàn)接口中的部分方法,也需要使用 implements 關(guān)鍵字。

示例如下:

    interface Demo{
        function fun1();
        function fun2();
    }
    abstract class Website implements Demo{
        public function fun2(){
            ... ... ;
        }
        abstract function fun3();
    }

以上是“PHP中接口interface的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI