码迷,mamicode.com
首页 > Web开发 > 详细

浅谈PHP面向对象编程(八)

时间:2018-10-20 16:17:34      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:bsp   text   title   就是   inf   dog   abstract   function   类型   

8.0  多态


 

在设计一个成员方法时,通常希望该方法具备一定的通用性。例如要实现一个动物叫的方法,由于每个动物的叫声是不同的,因此可以在方法中接收-个动物类型的参数的对象当传人猫类对象时就发出猫类的叫声,传人犬类对象时就发出犬类的叫声,这种向方法中传人不同的对象,方法执行效果各异的现象就是多态。为了让读者更好地拿握多态的用法,接下来通过一个案例来学习,如例8-22所示。

例8-22

技术分享图片
 1 <?php
 2      //定义Animal接口
 3     abstract class  Animal{
 4            public abstract function shout();
 5      }
 6     //定义Dog类,实现了Animal接口
 7     class Dog extends Animal{
 8          public function shout(){
 9             echo "汪汪……<br>";
10          }
11     }
12      //定义Cat类,实现了Animal接口
13      class Cat extends Animal{
14          public function shout(){
15              echo "喵喵……<br>";
16         }
17      }
18      function   AnimalShout($obj){ 
19          if($obj instanceof Animal){
20              $obj->shout();
21          }else{
22              echo "Error: 对象错误!";
23          }
24      }
25      $cat=new  Cat();
26      $dog=new  Dog();
27      AnimalShout($cat);
28      AnimalShout($dog);
29  ?>
技术分享图片

运行结果

技术分享图片

在例8-22中通过向Amimaltou方法中传人不同的对象,AnimalShout法打印出不同动物的叫声, 由此可见,多态使程序变得更加灵活,有效的提高了程序的扩展性。

浅谈PHP面向对象编程(八)

标签:bsp   text   title   就是   inf   dog   abstract   function   类型   

原文地址:https://www.cnblogs.com/Prinlily/p/9821640.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!