使用接口(interface),你可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。我们可以通过interface来定义一个接口,就像定义一个标准的类一样,但其中定义所有的方法都是空的。
#####接口特性
使用接口(interface),你可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。我们可以通过interface来定义一个接口,就像定义一个标准的类一样,但其中定义所有的方法都是空的。
接口中定义的所有方法都必须是public,这是接口的特性。
#####接口实现
要实现一个接口,可以使用implements操作符。类中必须实现接口中定义的所有方法,否则 会报一个fatal错误。如果要实现多个接口,可以用逗号来分隔多个接口的名称。(接口可以多继承)
```
Interface Usb{
//方法全部为公用方法,但没有具体函数体即(没有大括号{})
const path = './www/';
Public function conn($name, $doing);
Public function shut($name, $doing);
}
```
实现接口必须使用 iplements 并且必须书写接口中的每一个方法及传递对应参数,可以使用 const 来定义接口常量
```
Class Mp3 implements Usb{
Public function conn($name, $doing){
$this->name = $name;
echo $this->name . '连接USB接口,' . $doing;
}
Public function shut($name, $doing){
echo $name . '断开USB接口,' . $doing;
}
}
```
调用示例
```
$obj = new Mp3();
//输出:Mp3连接USB接口,开始充电
$obj->conn('Mp3', '开始充电');
//输出:Mp3断开USB接口,停止充电
$obj->shut('Mp3', '停止充电');
```
接口常量一旦定义不能修改,接口常量的概念和类常量是一样的。
```
//输出:./www/
echo Usb::path;
```