在 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-tw/n/331968.html