在 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
微信掃一掃
支付寶掃一掃