zoukankan      html  css  js  c++  java
  • 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(){}

    }

    ?>

  • 相关阅读:
    语音信号端点检测
    WEBPACK & BABEL 打包项目
    使用 Qt 获取 UDP 数据并显示成图片(2)
    QSS为Qt程序添加不一样的样式
    window 搜索大文件
    Idea java 编译发生 cannot find symbol
    JetBeans Tab键相关设置
    JetBean Rider 重命名 c# 程序集名
    Unity 导入其他工程
    列出当前文件夹下的以log结尾的文件名
  • 原文地址:https://www.cnblogs.com/WhiteM/p/6113551.html
Copyright © 2011-2022 走看看