<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教程有兴趣的朋友有所帮助。