<menu id="uuzns"><dd id="uuzns"></dd></menu>
  1. <big id="uuzns"></big>
    <mark id="uuzns"></mark>
      <meter id="uuzns"></meter>
    1. <td id="uuzns"><menuitem id="uuzns"><mark id="uuzns"></mark></menuitem></td>
      1. 辉煌电商SEO内测

        百度关键词优化三天上首页同行都是朋友 ?#38431;?#19968;起互利共赢谢绝一切非正规行业服务?#34892;?#20197;下同行团队?#25945;?#21644;代理的支持

        百度站长?#25945;MIP开发小组SEO焦大老友SEO每天一贴ZAC大哥卢松松大哥海瑶SEO兄弟附子SEO兄弟探索者SEO帮站SEO好友互点宝超快排?#25945;?

        百亿互刷宝下拉天下SEO自学网SEO研究?#34892;ġ?#23567;明SEO王德春SEO马海祥博客踏雪无痕?#19968;?#24037;作室SEO云优化好友云客网杭州思亿欧网赚吧北京SEO韩非老弟

        需要了解以上同仁的相关信息我们已经给你做好了搜索框看右上角绿色那个输入搜索即刻直达

        网站统计 共有读稿14437部 / 今日更新篇 / 评论19条 / 会员75 名 / 阅读1086085
        您好,请 登陆/注册
        软件内容页横幅广告

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

        2018.04.20

        浏览:

        导语如果您觉得本篇内容还不错请点击文章下面的赞然后分享给朋友哦...

        举例讲解PHP面对对象编程的多态-破洛洛教学网...请看详情...

        seo

        seo

        举例讲解PHP面对对象编程的多态
        什?#35789;?#22810;态?

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

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

        多态的代码

           

        <?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 . "?#25237;?#20110;中国传媒大学"; 
            } 
           
            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"; 
            } 
          } 
           
          // 同一个接口实现同一个方法不同的对象?#20174;?#32467;果不同这就是多态的表现和应用 
           
          $one = new One(); 
          $one->fun1(); // wangzhengyi?#25237;?#20110;中国传媒大学 
          $one->fun2(); // wangzhengyi的年龄是25 
           
          echo "<br>"; 
           
          $two = new Two(); 
          $two->fun1(); // wangzhengyi在北京灵创众和科技有限公司实习中 
          $two->fun2(); // wangzhengyi去年的年龄是24 
        

         

        1
        赞一个
        关键词
        ?#19981;?#36825;篇文章吗分享给你的好友吧点击这里复制网址
        共有112人阅读期待你的评论评论
        请先登陆后才能发表评论哦没账号赶紧注册一个吧
        最新评论
        ?#35753;?#26631;签
        回到顶部
        ʱʱʹٷ

          <menu id="uuzns"><dd id="uuzns"></dd></menu>
        1. <big id="uuzns"></big>
          <mark id="uuzns"></mark>
            <meter id="uuzns"></meter>
          1. <td id="uuzns"><menuitem id="uuzns"><mark id="uuzns"></mark></menuitem></td>
              1. <menu id="uuzns"><dd id="uuzns"></dd></menu>
              2. <big id="uuzns"></big>
                <mark id="uuzns"></mark>
                  <meter id="uuzns"></meter>
                1. <td id="uuzns"><menuitem id="uuzns"><mark id="uuzns"></mark></menuitem></td>