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



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

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

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

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


    //举例:创建一个电脑的接口
    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);
  • 相关阅读:
    IT经典书籍——Head First系列【推荐】
    IT经典书籍——Head First系列【推荐】
    使用JSP实现用户登录
    使用JSP实现用户登录
    【知乎精选】如何面试一个产品经理?如何判断一个产品经理是否是一个很牛的产品经理?
    淘宝API总结
    「用户标签」在数据库设计时应该如何存储?
    【爬虫集合】抖音API分析
    商业架构体系
    短视频带货
  • 原文地址:https://www.cnblogs.com/Itwonderful/p/5674708.html
Copyright © 2020-2023  润新知