当前位置 博文首页 > PHP面向对象多态性实现方法简单示例

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

    作者:怀色 时间:2021-08-24 18:51

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

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

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

    <?php
    class work{
      function polymorphic($obj){
        //检查是否引用类型(obj是否继承animal类)
        if($obj instanceof animal){
          $obj -> fun();
        }
        else{
          echo "no function";
        }
      }
      //如果需要指定类 (指定cat类,包含cat子类)
      function bose(cat $obj){
        $obj->fun();
      }
    }
    //抽象类
     abstract class animal{
      abstract function fun();
    }
    //cat猫类
    class cat extends animal{
      function fun(){
        echo "cat say miaomiao...";
      }
    }
    //dog狗类
    class dog extends animal{
      function fun(){
        echo "dog say wangwang...";
      }
    }
    class mouse extends cat{
    }
    //先new一个work类
    $new_work = new work();
    //然后通过new_work对象 调用 polymorphic 方法,传入不同的类实现 父类引用指向子类对象;接口引用指向实现接口的类对象(多态)。
    $new_work->polymorphic(new cat());
    echo '<br/>';
    $new_work->polymorphic(new dog());
    echo '<br/>';
    //指定类方式仿java
    $new_work->bose(new cat());
    echo '<br/>';
    //如果传输其他类,或者未继承cat类则会报错
    //$new_work->bose(new dog());
    echo '<br />';
    //这也不会报错
    $new_work->bose(new mouse());
    
    

    运行结果:

    cat say miaomiao...
    dog say wangwang...
    cat say miaomiao...
    
    cat say miaomiao...
    
    

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

    希望本文所述对大家PHP程序设计有所帮助。

    jsjbwy