当前位置:首页 > 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.  abstract class animal{ 
  18.   abstract function fun(); 
  19. //cat猫类 
  20. class cat extends animal{ 
  21.   function fun(){ 
  22.     echo "cat say miaomiao..."
  23.   } 
  24. //dog狗类 
  25. class dog extends animal{ 
  26.   function fun(){ 
  27.     echo "dog say wangwang..."
  28.   } 
  29. class mouse extends cat{ 
  30. //先new一个work类 
  31. $new_work = new work(); 
  32. //然后通过new_work对象 调用 polymorphic 方法,传入不同的类实现 父类引用指向子类对象;接口引用指向实现接口的类对象(多态)。 
  33. $new_work->polymorphic(new cat()); 
  34. echo '<br/>'
  35. $new_work->polymorphic(new dog()); 
  36. echo '<br/>'
  37. //指定类方式仿java 
  38. $new_work->bose(new cat()); 
  39. echo '<br/>'
  40. //如果传输其他类,或者未继承cat类则会报错 
  41. //$new_work->bose(new dog()); 
  42. echo '<br />'
  43. //这也不会报错 
  44. $new_work->bose(new mouse()); 

运行结果:

cat say miaomiao...

dog say wangwang...

cat say miaomiao...

cat say miaomiao...

Tags: PHP面向对象 PHP多态性

分享到: