面向对象——多态

Posted longqin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象——多态相关的知识,希望对你有一定的参考价值。

 

多态(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:对象错误;
        }
    }
}

 

以上是关于面向对象——多态的主要内容,如果未能解决你的问题,请参考以下文章

面向对象-通过代码分析多态

面向对象-通过代码分析多态

09.面向对象多态的概述及其代码体现

面向对象的多态详解 !!

面向对象多态

面向对象day07:多态-面向对象使用场景--知识点回顾