• php笔记(六)PHP类与对象之对象接口


    接口的实现

    <?php
    //interface 关键字用于定义一个接口
    interface ICanEat{
           //接口里面的方法不需要实现
           public function eat($food);
    }
    //implements关键字用于类实现某个接口
    class Human implements ICanEat{
           //实现了接口后,必须提供接口中方法的具体实现
           public function eat($food){
           echo "Human eating".$food;
        }
    
    }
    
    ?>   

    那么这一通定义之后

    通过实例化对象

    $peroson1=new Human();

    $person1->eat('apple');

    输出的结果就是

    Human eating apple

    <?php
    
    
    
    //interface 关键字用于定义一个接口
    interface ICanEat{
           //接口里面的方法不需要实现
           public function eat($food);
    }
    //implements关键字用于类实现某个接口
    class Human implements ICanEat{
           //实现了接口后,必须提供接口中方法的具体实现
           public function eat($food){
           echo "Human eating".$food."
    ";
        }
    
    }
    $person1 = new Human();
    $person1->eat('apple');
    
    //我们可以通过instanceof关键字来判断对象是否实现了某个接口
    
    var_dump($person1 instanceof ICanEat);
    
    //在上面的例子中我们可以通过这个关键字来判断是否实现了ICanEat这个接口
    
    ?>

    那么输出结果应该是

    Human eating apple

    Bool (true)


    <?php

    //interface 关键字用于定义一个接口
    interface ICanEat{
    //接口里面的方法不需要实现
    public function eat($food);
    }
    //implements关键字用于类实现某个接口
    class Human implements ICanEat{
    //实现了接口后,必须提供接口中方法的具体实现
    public function eat($food){
    echo "Human eating".$food." ";
    }

    }
    $person1 = new Human();
    $person1->eat('apple');

    //我们可以通过instanceof关键字来判断对象是否实现了某个接口

    var_dump($person1 instanceof ICanEat);

    //在上面的例子中我们可以通过这个关键字来判断是否实现了ICanEat这个接口

    //类可以继承,那么接口同样也能被继承

    interface ICanSleep extends ICanEat{

      public function sleep();

    }

    //当类实现子接口,那么父接口定义的方法也需要在类中来具体实现

    class Human1 implements ICanSleep{

      public function eat($food){}

      public function sleep(){}

    }

    ?>

  • 相关阅读:
    grpc学习
    01
    样本1
    杀死长时间占用CPU的进程
    SWFTools pdf2swf 参数详解
    C#自动下载并保存文件示例
    Flex初始化时加载外部XML
    通过XPDF抽取PDF中的中文文本
    Flex操作Json数据示例
    C#下载文件和将文件转换为数据流下载的示例
  • 原文地址:https://www.cnblogs.com/WhiteM/p/6113551.html
Copyright © 2020-2023  润新知