Class类的接口实现,也属于父子类中的一种,实现接口的声明并不需要使用class关键字,
    而是使用interface关键字,同时接口中的方法不需要使用{}符号概括具体的逻辑内容。
    其语法格式如下:

    1. interface 接口类名 {
    2. 控制权限 修饰符 function 方法();
    3. }

    接口类创建完后是不能直接new实例化的,而是需要使用implements关键字创建对应的子类,并且该子类必须实现父类中定义的所有方法,否则将会报一个致命错误。
    其语法格式如下:

    1. class 子类名 implements 接口父类名 {
    2. # 必须实现父类所定义的所有方法
    3. }
    1. 下面我们来看下接口类的具体实现代码:
    <?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%执行的规范。