您好,登錄后才能下訂單哦!
小編給大家分享一下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é)果:
由此我們便通過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é)果:
其中運行后需要注意的是:既然要通過子類繼承了接口中的方法,那么接口中的所有方法都必須在子類中實現(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è)資訊頻道!
免責聲明:本站發(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)容。