PHP同大多數的面向對象語言一樣,並不支持多重繼承。少數支持多重繼承的語言中最著名的就是C++和Smalltalk。如果需要實現多重繼承功能,在PHP中,可以通過接口,它是PHP解決多重繼承問題的方法,類似於Java的接口實現。
接口的思想是指定一個實現了該接口的類必須實現的一系列函數。如果沒有實現接口中指定的方法,將產生一個致命錯誤。
當有很多人一起開發一個項目時,可能都會去調用別人寫的一些類,那你就會問,我怎么知道他的某個功能的實現方法是怎么命名的呢,這個時候PHP接口類interface就起到作用了,當我們定義了一個接口類時,它里面的方式是下面的子類必須實現的,比如 :
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接口類interface就是一個類的領導者,指明方向,子類必須完成它指定方法。