Deprecated: htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated in /webData/hua/www.ascwh.com/var/Typecho/Feed.php on line 367
ASCWH - interface 2019-04-29T21:34:47+08:00 Typecho https://www.ascwh.com/feed/atom/tag/interface/ <![CDATA[PHP 接口类 interface]]> https://www.ascwh.com/202.html 2019-04-29T21:34:47+08:00 2019-04-29T21:34:47+08:00 ASCWH https://www.ascwh.com 接口是什么?

使用接口(interface),可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。

接口是通过 interface 关键字来定义的,就像定义一个标准的类一样,但其中定义所有的方法都是空的。

接口中定义的所有方法都必须是公有,这是接口的特性。

什么时候用接口?

1、定规范,保持统一性;
2、多个平级的类需要去实现同样的方法,只是实现方式不一样

接口使用规范

接口不能实例化
接口的属性必须是常量
接口的方法必须是public【默认public】,且不能有函数体
类必须实现接口的所有方法
一个类可以同时实现多个接口,用逗号隔开
接口可以继承接口【用的少】

interface usb{
    const brand = 'siemens';    // 接口的属性必须是常量
    public function connect();  // 接口的方法必须是public【默认public】,且不能有函数体
}
// new usb();  // 接口不能实例化

// 类实现接口
class Android implements usb{
    public function connect(){  // 类必须实现接口的所有方法
        echo '实现接口的connect方法';
    }
}


interface usbA{
    public function connect();
}

interface usbB{
    public function contact();
}

// 类可以同时实现多个接口
class mi implements usbA,usbB{
    public function connect(){

    }
    public function contact(){

    }
}
]]>