PHP interface接口用法详解(附带实例)
在 PHP 项目开发中,经常需要定义方法来描述类的一些行为特征,但是这些行为特征又有不同的特点。例如,人类的行为特征是说话、吃饭、行走;动物的行为特征是鸣叫、吃饭、跳跃等。
在 PHP 中,可以利用接口定义不同的行为,提高程序的灵活性。
在接口中,所有的方法只能是公有的,不能使用 final 关键字修饰,具体语法格式如下:
接口有两类成员,分别是接口常量和接口方法:
接口的方法体没有具体实现,因此,需要通过某个类使用 implements 关键字来实现接口,具体语法格式如下:
下面演示接口的定义和实现,具体代码如下:
接口的继承使用 extends 关键字实现,多继承用逗号把继承的接口隔开即可,具体语法格式如下:
下面演示接口继承的使用方法,具体代码如下:
在 PHP 中,可以利用接口定义不同的行为,提高程序的灵活性。
PHP接口的实现
接口用于指定某个类必须实现的功能,通过 interface 关键字来定义。在接口中,所有的方法只能是公有的,不能使用 final 关键字修饰,具体语法格式如下:
interface 接口名 { const 常量名 =''; // 接口常量 public function 方法名(); // 接口方法 }在上述语法格式中,接口与类有类似的结构,但是接口不能被实例化。
接口有两类成员,分别是接口常量和接口方法:
- 实现接口的类可以访问接口常量,但不能在类中定义同名常量;
- 接口方法为抽象方法且没有方法体,在定义接口中的抽象方法时,由于所有的方法都是抽象的,因此在定义时可以省略 abstract 关键字。
接口的方法体没有具体实现,因此,需要通过某个类使用 implements 关键字来实现接口,具体语法格式如下:
class 类名 implements 接口名 { }
下面演示接口的定义和实现,具体代码如下:
interface Human { const NAME = ''; // 接口常量 public function eat(); // 接口方法 } class Man implements Human { public function eat() // 实现接口方法 { } }在上述代码中,第 3 行代码定义了接口常量NAME;第 4 行代码定义了接口方法,通过 Man 类实现 Human 接口,并在 Man 类中实现接口方法。
PHP接口的继承
在 PHP 中,为了让接口更具有结构性,接口可以被继承,从而实现接口的成员扩展。虽然 PHP 类只能继承一个父类,也就是单继承,但是接口和类不同,接口可以实现多继承,一次继承多个接口。接口的继承使用 extends 关键字实现,多继承用逗号把继承的接口隔开即可,具体语法格式如下:
interface A {} interface B {} // 接口继承 interface C extends A {} // 接口多继承 interface D extends A, B {}
下面演示接口继承的使用方法,具体代码如下:
interface Human { public function walk(); public function talk(); } interface Animal { public function eat(); public function drink(); } interface Monkey extends Human, Animal { public function sleep() {}; }上述代码定义了两个接口 Human 和 Animal,并定义 Monkey 接口继承这两个接口。