在 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 是一个很有用的关键字,用于实现接口。使用它,我们可以让一个类满足某个接口的规定,从而让这个类支持对应的接口。同时一个接口也可以继承自另一个或多个接口,这样子接口就包含了所有父接口规定的方法。