php interface 接口

/**
 * interface 接口  接口其实是类的模板
 * 接口是类的模板
 * 类是对象的模板
 * implements 实现接口关键字
 * 定义接口是为了统一开发规范
 * 接口好比是产品说明书,业务就是使用这个产品,我们只需要知道他里面有什么功能,使用这些功能即可,至于里面的业务逻辑我们不需要知道
 * 在设计模块的时候一定要站长接口的高度去设计,是模块之间松耦合.
 */

interface Person//这里我们创建了两个接口方法
{
    public function eat();

    public function sheep();
}

class Man implements Person()
{
    //这里实现接口方法时,里面的方法必须和interface接口里创建的方法一致,否则报错
    public function eat()
    {
        echo '吃大餐';
    }

    public function sleep()
    {
        echo '睡觉';
    }
}

class L
{
    public static function factory(Person $user)//这里限定了所传参数必须实现了Person这个接口的实例化类对象,否则就会报错
    {
        return $user;
    }
}

$l = L::factory(new Man());


/**
 * 接口的继承
 */

interface Ia
{
    const NAME = 'zhangsan';//接口里面的常量
    public function eat();
}
echo Ia::NAME;//这里是访问接口里面常量的方法,和类的访问方法相同

interface Ib
{
    public function sleep();
}

//继承方式一
interface AB extends Ia,Ib
{

}

class Test implements AB
{
    public function eat()
    {
        echo '吃烧鸡';
    }

    public function sleep()
    {
        echo '不睡觉';
    }
}
echo Ia::NAME;//这里是访问接口里面常量的方法,和类的访问方法相同
$test = new Test();
$test->eat();
$test->sleep();

//继承方式二
class Test implements Ia,Ib//直接实现两个接口
{
    public function eat()
    {
        echo '吃烧鸡';
    }

    public function sleep()
    {
        echo '不睡觉';
    }
}
$test = new Test();
$test->eat();
$test->sleep();

 

posted @ 2017-12-03 16:14  enjie  阅读(510)  评论(0编辑  收藏  举报