面向对象PHP(四)

来源:互联网 发布:算法竞赛入门经典 pdf 编辑:程序博客网 时间:2024/06/05 10:06
<?php/***   接口就是把不同类的共同行为进行了定义,然后在不同的类里面实现不同的功能。*   因为接口的方法实现可以有很多,所以对于接口里面定义的方法的具体实现是多种多样的,这种特性我们称为多态*/header("Content-Type: text/html; charset=utf-8");//去除中文乱码//interface关键字用于定义接口    interface ICanEat{        public function eat($food);    }    //implements关键字用于表示类实现某个接口    class Human implements ICanEat    {        //实现某个接口后,必须提供接口中定义的方法的具体实现        public function eat($food){            echo "Human::eat()".$food."<br/>";        }    }    class Animal implements ICanEat    {        //实现某个接口后,必须提供接口中定义的方法的具体实现        public function eat($food){            echo "Animal::eat()".$food."<br/>";        }    }    $pzy=new Human();    $pzy->eat("大西瓜");    $dog=new Animal();    $dog->eat("大骨头");    //instanceof用于判断某个对象是否实现了某个接口    var_dump($dog instanceof ICanEat);    function checkEat($obj){        if ($obj instanceof ICanEat) {            $obj->eat('food');        }else{            echo "The obj can't eat.<br/>";        }    }//相同的一行代码,对于传入不同的接口的实现的对象的时候,表现不同的,称为多态checkEat($pzy);checkEat($dog);//用extends让接口继承接口interface ICanFly extends ICanEat{    public function fly();}//当类实现子接口时,父接口定义的方法也要在这个类中具体实现class Human1 implements ICanFly{    public function fly(){}    public function eat($food){}}?>
0 0