Class类的接口实现,也属于父子类中的一种,实现接口的声明并不需要使用class关键字,
而是使用interface关键字,同时接口中的方法不需要使用{}符号概括具体的逻辑内容。
其语法格式如下:
interface 接口类名 {
控制权限 修饰符 function 方法();
}
接口类创建完后是不能直接new实例化的,而是需要使用implements关键字创建对应的子类,并且该子类必须实现父类中定义的所有方法,否则将会报一个致命错误。
其语法格式如下:
class 子类名 implements 接口父类名 {
# 必须实现父类所定义的所有方法
}
下面我们来看下接口类的具体实现代码:
<?php
# 接口父类
interface Api {
/**
* 攻击
* @param int $AD 攻击力
*/
public function Attack($AD);
/**
* 防御
*/
public function Defense();
}
# 子类
class V1 implements Api {
/**
* 攻击
* @param int $AD 攻击力
*/
public function Attack($AD) { echo '我要攻击'; }
/**
* 防御
*/
public function Defense() { echo '我要防御'; }
}
# 使用demo如下:
$obj = new V1();
$obj->Attack(1);
$obj->Defense();
接口的使用是便于版本管理,当我们有些业务流程是固定不变的,
那么为了规范代码的编程流程和升级维护,我们就可以使用接口定义,
把这些固定的流程声明在父类中,下一次升级版本的时候只需要新建一个子类,就能重新开发,
同时还能保存旧版本的代码,如果新版本的代码出现bug,就可以通过将new V2切换为V1,就能回退版本。
所以,接口类可以总结为是一套子类必须100%执行的规范。