首页 > 后端开发 > php教程 > 面向对象PHP(四)

面向对象PHP(四)

WBOY
发布: 2016-07-29 09:16:15
原创
940 人浏览过

<code><span><span><?php </span><span>/**
*   接口就是把不同类的共同行为进行了定义,然后在不同的类里面实现不同的功能。
*   因为接口的方法实现可以有很多,所以对于接口里面定义的方法的具体实现是多种多样的,这种特性我们称为多态
*/</span>
header(<span>"Content-Type: text/html; charset=utf-8"</span>);<span>//去除中文乱码</span><span>//interface关键字用于定义接口</span><span><span>interface</span><span>ICanEat</span>{</span><span>public</span><span><span>function</span><span>eat</span><span>(<span>$food</span>)</span>;</span>
    }
    <span>//implements关键字用于表示类实现某个接口</span><span><span>class</span><span>Human</span><span>implements</span><span>ICanEat</span>
    {</span><span>//实现某个接口后,必须提供接口中定义的方法的具体实现</span><span>public</span><span><span>function</span><span>eat</span><span>(<span>$food</span>)</span>{</span><span>echo</span><span>"Human::eat()"</span>.<span>$food</span>.<span>"<br>"</span>;
        }
    }

    <span><span>class</span><span>Animal</span><span>implements</span><span>ICanEat</span>
    {</span><span>//实现某个接口后,必须提供接口中定义的方法的具体实现</span><span>public</span><span><span>function</span><span>eat</span><span>(<span>$food</span>)</span>{</span><span>echo</span><span>"Animal::eat()"</span>.<span>$food</span>.<span>"<br>"</span>;
        }
    }

    <span>$pzy</span>=<span>new</span> Human();
    <span>$pzy</span>->eat(<span>"大西瓜"</span>);

    <span>$dog</span>=<span>new</span> Animal();
    <span>$dog</span>->eat(<span>"大骨头"</span>);
    <span>//instanceof用于判断某个对象是否实现了某个接口</span>
    var_dump(<span>$dog</span><span>instanceof</span> ICanEat);
    <span><span>function</span><span>checkEat</span><span>(<span>$obj</span>)</span>{</span><span>if</span> (<span>$obj</span><span>instanceof</span> ICanEat) {
            <span>$obj</span>->eat(<span>'food'</span>);
        }<span>else</span>{
            <span>echo</span><span>"The obj can't eat.<br>"</span>;
        }
    }
<span>//相同的一行代码,对于传入不同的接口的实现的对象的时候,表现不同的,称为多态</span>
checkEat(<span>$pzy</span>);
checkEat(<span>$dog</span>);


<span>//用extends让接口继承接口</span><span><span>interface</span><span>ICanFly</span><span>extends</span><span>ICanEat</span>{</span><span>public</span><span><span>function</span><span>fly</span><span>()</span>;</span>
}
<span>//当类实现子接口时,父接口定义的方法也要在这个类中具体实现</span><span><span>class</span><span>Human1</span><span>implements</span><span>ICanFly</span>
{</span><span>public</span><span><span>function</span><span>fly</span><span>()</span>{</span>}
    <span>public</span><span><span>function</span><span>eat</span><span>(<span>$food</span>)</span>{</span>}
}
<span>?></span></span></span></code>
登录后复制

版权声明:本文为博主原创文章,未经博主允许不得转载。

以上就介绍了面向对象PHP(四),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

相关标签:
gt
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板