* 介面
* 1.使用關鍵字:interface
* 2.類別是物件的範本,介面是類別的範本
* 3.介面看作是特殊的類別
* 4.介面中的方法,只會宣告不實作,與抽象類別一樣
* 5.介面中的方法必須是public,支援static
* 6.介面中可以宣告類別常數const,但不允許被類別或子介面覆蓋
* 7.用類別實作一個介面使用implements 關鍵字
# * 8 .一個類別可以實作多個介面,多個介面之間用逗號分開
* 9.介面之間也可以使用關鍵字extends繼承
* 10.一個類別實多個介面時,方法不可以重新名稱
//宣告介面:動物
if (!interface_exists('Animal')) { interface Animal { //接口常量 const status = 'viable'; //能存活的 //接口方法:饲养时吃什么 public function feeding($foods); } } //声明类Cat,并实现接口Animal if (interface_exists('Animal')) { class Cat implements Animal { private $name = '猫'; //在类中必须实现接口中的方法feeding() public function feeding($foods) { return $this->name.'吃'.$foods; } } } //实例化Dog类, echo (new Cat())->feeding('老鼠'); echo '<hr>'; //再定义一个接口:动物的特性 if (!interface_exists('Feature')) { interface Feature { //接口方法 public function hobby($hobby); } } //声明一个类Dog,实现了二个接口: Animal,Feature if (interface_exists('Animal') && interface_exists('Feature')) { class Dog implements Animal, Feature { private $name = '狗'; //必须实现接口Animal中的feeding()方法 public function feeding($foods) { // return $this->name.'吃'.$foods; //改成链式 echo $this->name.'吃'.$foods; return $this; } //必须实现接口Feature中的hobby()方法 public function hobby($hobby) { // return $hobby; //改成链式 echo $hobby; return $this; } } }
//實例化Dog類別
echo (new Dog())->feeding('肉'); echo (new Dog())->hobby('忠诚,勇敢,不离不弃~~');
//大家想想如何將上面的二個方法呼叫改成鍊式?
//注意:先把上面的實例化呼叫語句註解掉,否則下面的鍊式呼叫不生效
(new Dog)->feeding('骨头')->hobby(',可爱,温顺,听话~~');
以上是php中的介面interface的詳細內容。更多資訊請關注PHP中文網其他相關文章!