当前位置:首页 > PHP教程 > php面向对象 > 列表

PHP面向对象多态性实现方法简单示例

发布:smiling 来源: PHP粉丝网  添加日期:2021-08-09 14:17:32 浏览: 评论:0 

这篇文章主要介绍了PHP面向对象多态性实现方法,简单说明了面向对象多态性的原理并结合具体实例给出了php实现多态性的相关操作技巧,需要的朋友可以参考下

本文实例讲述了PHP面向对象多态实现方法,分享给大家供大家参考,具体如下:

多态:父类引用指向子类对象(面向对象中能够根据使用类的上下文(使用输入不同的类调用不同类的方法)来重新定义或改变类的性质和行为。);接口引用指向实现接口的类对象。

面向对象:把数据(属性),操作数据的方法,逻辑,形成一个类,把类抽象出来形成对象,通过对象使用类;

  1. <?php 
  2. class work{ 
  3.   function polymorphic($obj){ 
  4.     //检查是否引用类型(obj是否继承animal类) 
  5.     if($obj instanceof animal){ 
  6.       $obj -> fun(); 
  7.     } 
  8.     else{ 
  9.       echo "no function"; 
  10.     } 
  11.   } 
  12.   //如果需要指定类 (指定cat类,包含cat子类) 
  13.   function bose(cat $obj){ 
  14.     $obj->fun(); 
  15.   } 
  16. } 
  17. //抽象类 
  18.  abstract class animal{ 
  19.   abstract function fun(); 
  20. } 
  21. //cat猫类 
  22. class cat extends animal{ 
  23.   function fun(){ 
  24.     echo "cat say miaomiao..."; 
  25.   } 
  26. } 
  27. //dog狗类 
  28. class dog extends animal{ 
  29.   function fun(){ 
  30.     echo "dog say wangwang..."; 
  31.   } 
  32. } 
  33. class mouse extends cat{ 
  34. } 
  35. //先new一个work类 
  36. $new_work = new work(); 
  37. //然后通过new_work对象 调用 polymorphic 方法,传入不同的类实现 父类引用指向子类对象;接口引用指向实现接口的类对象(多态)。 
  38. $new_work->polymorphic(new cat()); 
  39. echo '<br/>'; 
  40. $new_work->polymorphic(new dog()); 
  41. echo '<br/>'; 
  42. //指定类方式仿java 
  43. $new_work->bose(new cat()); 
  44. echo '<br/>'; 
  45. //如果传输其他类,或者未继承cat类则会报错 
  46. //$new_work->bose(new dog()); 
  47. echo '<br />'; 
  48. //这也不会报错 
  49. $new_work->bose(new mouse()); 

运行结果:

cat say miaomiao...

dog say wangwang...

cat say miaomiao...

cat say miaomiao...

Tags: PHP面向对象 PHP多态性

分享到: