PHP面向對象之接口的實例

這篇文章主要以代碼爲主,主要作用是通過實例理解PHP面向對象的接口(interface)和備忘。

定義接口使用interface關鍵字,不在使用class關鍵字;

接口中可以定義常量,不可以定義成員屬性和成員方法,這一點和抽象類不同(抽象類可以定義)

接口中的方法全是抽象方法,但是不用abstract關鍵字修飾,沒有實體內容

interface usb{

    function connect();//鏈接USB

    function quit();//退出USB

interface chapai{

    const DIANYA = '220v';

    function charu();//插入

    function bachu();//拔出

}

以三個不同的電子設備爲例:不同的設備實現USB接口的方法不同,進而實現的動作不同

數碼相機:插在電腦上彈出圖片瀏覽器       U盾:裝驅動,打開瀏覽器        手機:充電

class shouji implements usb,chapai{    //一個類可以實現多個接口

    function connetc(){

        echo '手機充電,顯示手機內容';

    }

    function quit(){

        echo "手機停止充電,退出";

    }

    function charu(){    //實現插排接口的方法

        echo "手機通過".self::DIANYA."電壓充電,插排充電";

    }

    function bachu(){

        echo "手機斷電拔出,離開".self::DIANYA."電壓插排";

    }

}

class xiangji implements usb{

    function connetc(){

        echo "相機插在USB上,顯示圖片";

    }

    function quit(){

        echo "相機拔出";

    }

}

class pc{

    function usbConnect($usb){    //傳入不同的電子設備,得到設備的對象進而就會調用這個電子設備的鏈接方法

        $obj = new $usb();

        $obj->connect();

    }

    function usbQuit($usb){    //同上,傳入不同的設備調用相應設備的退出方法

        $obj = new $usb();

        $obj->quit();

    }

}

$apple = new pc();

$apple->usbConnetc('shouji');    //new出一個電腦的對象,傳入手機就會調用手機連接USB的方法

通過上面的電腦類可以理解爲:

手機通過USB連接上電腦,機會調用手機的方法;相機通過USB連接上電腦,就會調用相機的方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章