加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

举例讲解PHP面对对象编程的多态

发布时间:2020-12-13 02:49:34 所属栏目:PHP教程 来源:网络整理
导读:《:举例讲解PHP面对对象编程的多态》要点: 本文介绍了:举例讲解PHP面对对象编程的多态,希望对您有用。如果有疑问,可以联系我们。 PHP应用 什么是多态? 多态性,其来自于dictionary.com的定义是"以不同形式,阶段或者类型出现在独立的组织中或者同种组织中

《:举例讲解PHP面对对象编程的多态》要点:
本文介绍了:举例讲解PHP面对对象编程的多态,希望对您有用。如果有疑问,可以联系我们。

PHP应用什么是多态?
多态性,其来自于dictionary.com的定义是"以不同形式,阶段或者类型出现在独立的组织中或者同种组织中,而不存在根本区别."由该定义,我们可以认为,多态性是一种通过多种状态或阶段来描述相同对象的编程方式.其实,它的真正意义在于:实际开发中,我们只需要关注一个接口或基类的编程,而不必担心一个对象所属于的具体类(class).
如果你熟悉设计模式,即使只是有个初步了解,那么你也会了解这个概念.事实上,PHP5多态性可能是基于模式设计编程中的最伟大的工具.它允许我们以一种逻辑的方式来组织相类似的对象从而实现在具体编码时不必担心对象的具体类型;而且,我们只需要对一个所期望的接口或基类编程即可.一个应用程序越抽象,则它就显得越灵活--而多态性是对行为加以抽象的最好的方式之一.
例如,让我们考虑一个叫Person的类.我们可以用称为David,Charles和Alejandro的类来子类化Person.Person有一个抽象办法AcceptFeedback(),所有的子类都要实现这个办法.这意味着,任何使用基类Person的子类的代码都能调用办法AcceptFeedback().你不必检查该对象是一个David还是一个Alejandro,仅知道它是一个Person就够了.结果是,你的代码只需关注"最小公分母"-Person类即可.
在这个示例中的Person类也可以被创建为一个接口.当然,与上面相比存在一些区别,主要在于:一个接口并没有给出任何行为,而仅确定了一组规则.一个Person接口要求的是"你必须支持AddFeedback()办法",而一个Person类可以提供一些AddFeedback()办法的缺省代码-你对之的理解可以是"如果你不选择支持AddFeedback(),那么你应该提供一种缺省实现."至于如何选择接口或基类则并非本文的主题;但是,一般说来,你需要通过基类来实现一个缺省的办法.如果你能够简单地勾勒出你的类所要实现的一组期望的功能,那么你也可以使用一个接口.

通俗理解
多态最直接的定义就是让具有继承关系的不同类对象,可以对相同名称的成员函数调用,产生不同的反应结果

多态的代码

???


<?php 
   
  /** 
   * 声明接口Demo 
   * @author wzy 
   * 
   */ 
  interface Demo 
  { 
   
    const NAME = "wangzhengyi"; 
   
    const AGE = 25; 
   
    function fun1 (); // 声明办法默认是public abstract 
    function fun2 (); 
  } 
   
  class One implements Demo 
  { 
   
    public function fun1 () 
    { 
      echo Demo::NAME . "就读于中国传媒大学"; 
    } 
   
    public function fun2 () 
    { 
      echo Demo::NAME . "的年龄是" . Demo::AGE; 
    } 
  } 
   
  class Two implements Demo 
  { 
   
    public function fun1 () 
    { 
      echo Demo::NAME . "在北京灵创众和科技有限公司实习中"; 
    } 
   
    public function fun2 () 
    { 
      echo Demo::NAME . "去年的年龄是24"; 
    } 
  } 
   
  // 同一个接口,实现同一个办法,不同的对象,反应结果不同.这就是多态的表现和应用 
   
  $one = new One(); 
  $one->fun1(); // wangzhengyi就读于中国传媒大学 
  $one->fun2(); // wangzhengyi的年龄是25 
   
  echo "<br>"; 
   
  $two = new Two(); 
  $two->fun1(); // wangzhengyi在北京灵创众和科技有限公司实习中 
  $two->fun2(); // wangzhengyi去年的年龄是24 

《:举例讲解PHP面对对象编程的多态》是否对您有启发,欢迎查看更多与《:举例讲解PHP面对对象编程的多态》相关教程,学精学透。编程之家 52php.cn为您提供精彩教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读