码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象——多态

时间:2019-10-20 18:23:13      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:定义   erro   xtend   col   eof   编程   clu   dex   实现   

 

多态(Polymorphism)按字面上意思理解就是“多种形状”。可以理解为多种表现形式,也即“一个对外接口,多个内部实现方法”。在面向对象的理论 中,多态性的一般定义为:同一个操作作用于不同的类的实例,将产生不同的执行结果。也即不同类的对象收到相同的消息时,将得到不同的结果。

在实际的应用开发中,采用面向对象中的多态主要在于可以将不同的子类对象都当作一个父类来处理,并且可以屏蔽不同子类对象之间所存在的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。

 

index.php

<?php
include car.php;
$car = new car();
$dc = new dc();
$bus1 = new bus1();
$bus2 = new bus2();
$bus3 = new bus3();

//$car->myfun();
//$bus1->myfun();
//$bus2->myfun();
//$bus3->myfun();

$dc->execMyFun($bus1);

 

car.php

<?php

class car
{
    function myfun()
    {
        echo this is car fun<br/>;
    }
}

class bus1 extends car
{
    function myfun()
    {
        echo this is bus1 fun<br/>;
    }
}

class bus2 extends car
{
    function myfun()
    {
        echo this is bus2 fun<br/>;
    }
}
class bus3 extends car
{
    function myfun()
    {
        echo this is bus3 fun<br/>;
    }
}

class dc {
    /*
     * 多态
     *
     */
    function execMyFun($obj) // 或者参数现在car类型,(car $obj)
    {
        if ($obj instanceof car) {
            $obj->myfun();
        } else {
            echo Error:对象错误;
        }
    }
}

 

面向对象——多态

标签:定义   erro   xtend   col   eof   编程   clu   dex   实现   

原文地址:https://www.cnblogs.com/longqin/p/11707953.html

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