PHP介面(interface)的特性
1、介面的方法必須是公開的。
2、介面的方法預設是抽象的,所以不在方法名稱前面加abstract。 (推薦學習:PHP程式設計從入門到精通)
3、介面可以定義常數,但不能定義成員屬性,常數的定義和用法和類別中常數一樣。
4、類別可以實現多個介面(相當於把多個功能集於一身,如手機實現了小靈通、MP3、MP4的功能)
5、介面也可以繼承接口。
PHP同大多數的物件導向語言一樣,並不支援多重繼承。如果需要實現多重繼承功能,在PHP中,可以透過接口,它是PHP解決多重繼承問題的方法,在php5.4版本之後有個類別的新特性trait,有興趣的可以百度下。
介面的想法是指定一個實作了該介面的類別必須實現的一系列函數。如果沒有實作介面中指定的方法,將產生一個致命錯誤。
當有很多人一起開發一個專案時,可能都會去調用別人寫的一些類,那你就會問,我怎麼知道他的某個功能的實現方法是怎麼命名的呢,這時候PHP介面類別interface就起到作用了,當我們定義了一個介面類別時,它裡面的方式是下面的子類別必須實現的,例如:
介面interface 是一個規定,給人繼承用的東西,有點像抽象類別
在裡面定義的方法,卻不去實例化,而需要別的類別去implements 它,而且必須一一實作介面定義的所有方法。
interface Shop { public function buy($gid); public function sell($gid); public function view($gid); }
我宣告一個shop介面類,定義了三個方法:買(buy),賣(sell),看(view),那麼繼承此類的所有子類別都必須實現這3個方法少一個都不行,如果子類別沒有實作這些話,就無法運作。
其實介面類別說白了,就是一個類別的模板,一個類別的規定,如果你屬於這類,你就必須遵循我的規定,少一個都不行,但是具體你怎麼做,我不管,那是你的事,如:
class BaseShop implements Shop { public function buy($gid) { echo('你购买了ID为 :'.$gid.'的商品'); } public function sell($gid) { echo('你卖了ID为 :'.$gid.'的商品'); } public function view($gid) { echo('你查看了ID为 :'.$gid.'的商品'); } }
以上是php接口是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!