在 PHP 語言中,implements 是一個非常常用的關鍵字,用於實現接口。這個關鍵字可以讓我們定義一個類,滿足某個接口的所有規定,從而讓這個類支持對應的接口。
一、使用 implements 實現接口
在 PHP 中,我們可以使用 implements 關鍵字來實現一個接口。接口定義了方法,類實現接口時必須實現所有的方法。
示例代碼如下:
interface Animal { public function eat(); public function sleep(); } class Cat implements Animal { public function eat() { echo "Cat is eating.\n"; } public function sleep() { echo "Cat is sleeping.\n"; } }
上述代碼定義了一個 Animal 接口,它包含 eat() 和 sleep() 兩個方法。接下來我們定義了一個 Cat 類,使用 implements 關鍵字實現了 Animal 接口,並實現了 eat() 和 sleep() 兩個方法。
二、多個接口同時實現
在一個類中使用 implements 關鍵字可以實現一個接口,但是可以同時實現多個接口。示例代碼如下:
interface FirstInterface { public function firstMethod(); } interface SecondInterface { public function secondMethod(); } class MyClass implements FirstInterface, SecondInterface { public function firstMethod() { echo 'I am implementing FirstInterface'; } public function secondMethod() { echo 'I am implementing SecondInterface'; } }
上述代碼定義了兩個接口 FirstInterface 和 SecondInterface,並定義了一個類 MyClass,使用 implements 關鍵字同時實現了這兩個接口。
三、使用 implements 和繼承同事使用
在 PHP 中,一個類可以同時繼承另一個類,而且還可以同時實現一個或多個接口。示例代碼如下:
interface Animal { public function eat(); public function sleep(); } class Mammals { public function run() { echo "I can run.\n"; } } class Cat extends Mammals implements Animal { public function eat() { echo "Cat is eating.\n"; } public function sleep() { echo "Cat is sleeping.\n"; } }
上述代碼定義了 Animal 接口、Mammals 類和 Cat 類。Cat 類同時繼承了 Mammals 類和實現了 Animal 接口。
四、接口繼承多個接口
在 PHP 中,一個接口也可以繼承自另一個或多個接口,這樣子接口就包含了父接口所有的規定。示例代碼如下:
interface Animal { public function eat(); public function sleep(); } interface Mammals extends Animal { public function run(); } class Cat implements Mammals { public function eat() { echo "Cat is eating.\n"; } public function sleep() { echo "Cat is sleeping.\n"; } public function run() { echo "Cat is running.\n"; } }
上述代碼定義了 Animal 接口和 Mammals 接口,Mammals 繼承自 Animal,而 Cat 類實現了 Mammals 接口,從而包含了所有 Animal 和 Mammals 規定的所有方法。
五、總結
在 PHP 中,implements 是一個很有用的關鍵字,用於實現接口。使用它,我們可以讓一個類滿足某個接口的規定,從而讓這個類支持對應的接口。同時一個接口也可以繼承自另一個或多個接口,這樣子接口就包含了所有父接口規定的方法。
原創文章,作者:AIBLD,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/331968.html