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

深入理解面向对象三大特性——多态

时间:2016-07-16 00:03:13      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:


 

多态,字面意思,就是多种形态

比如:一种红酒,由不同的人来品尝,会有不同的感觉,这叫做多态;

        一个人用不同的方式来喝酒,也会有不同的后果,这也叫做多态。

多态的原理:类都写好了,不要去修改它,只是在类外调用时更改参数,从而实现不同的结果(多态)


 

//举例:创建一个电脑的接口
interface Computer
{
    public function version();
    public function work();
}

//创建一个笔记本的子类实现接口
class Notecomputer implements Computer
{
    public function version()
    {
        echo ‘笔记本‘;
    }
    public function work()
    {
        echo ‘可以运行Win7‘;
    }
}

//创建一个台式机的子类实现接口
class Desktopcomputer implements Computer
{
    public function version()
    {
        echo ‘台式机‘;
    }
    public function work()
    {
        echo ‘可以运行XP‘;
    }
}

//创建一个人的类
class Person
{
    public function doing($type)
    {
        echo ‘这个人的‘;
        $type->version();
        $type->work();
    }
}

$notecomputer = new Notecomputer();
$desktopcomputer = new Desktopcomputer();
$demo = new Person();
$demo->doing($desktopcomputer);//输出这个人的台式机可以运行XP

 


 

abstract class Computer
{
    abstract public function version();
    abstract public function work();
}

class Notebook extends Computer
{
    public function version()
    {
        echo ‘笔记本‘;
    }
    public function work()
    {
        echo ‘在运行Win7‘;
    }
}

class Desktopcomputer extends Computer
{
    public function version()
    {
        echo ‘台式机‘;
    }
    public function work()
    {
        echo ‘在运行XP‘;
    }
}

class Person
{
    public function _run($type)
    {
        echo ‘这个人的‘;
        $type->version();
        $type->work();
    }
}

$nc = new Notebook();
$dc = new Desktopcomputer();
$p = new Person();
$p->_run($dc);

 

深入理解面向对象三大特性——多态

标签:

原文地址:http://www.cnblogs.com/Itwonderful/p/5674708.html

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