Sian 发表于 2016-1-2 10:40:24

PHP中多态的简单演示

<?php
        // 创建一个USB接口(抽象类)
        interface USB{
                // 抽象类中的成员变量为固定常量
                const width = 12;
                const height = 14;
                // 申明抽象类中的抽象方法即为制定接口标准
                function load();
                function run();
                function stop();
        }
       
       
        // 接口定义完毕,接下来是以一个实例来演示接口的使用
        // 1、创建一台电脑,电脑的useUSB功能是加载、运行、卸载usb设备
        // 2、创建一个用户,用户使用电脑来运行某个usb设备
        // 3、这个usb设备必须符合上面制定的usb接口的标准,即实现接口抽象类
        // 4、最终的结果是【人】在【电脑】上使用【鼠标】,涉及到三个类
        // 5、其中鼠标是符合usb规范的
        class Computer{
                // 由于电脑上制定了USB规范,因此可直接调用规范内的方法
                // 如果不符合USB规范,则不能在该电脑上使用该设备
                // 符合USB规范则必须实现load()、run()、stop()三个方法
                function useUSB($usb){
                        $usb->load();
                        $usb->run();
                        $usb->stop();
                }
        }
        // 人有工作的方法,工作的方法实现即为使用电脑
        // 并且是使用电脑上的USB,那前提是他要有USB设备
        // 人会在电脑上使用USB设备
        class Person{
                function work($computer, $device){
                        $computer->useUSB($device);
                }
        }
       
        // 创建符合USB规范的鼠标
        // 实现该规范的所有方法即可
        class Mouse implements USB{
                function load(){
                        echo "加载鼠标成功!<br/>";
                }
                function run(){
                        echo "鼠标运行中...<br/>";
                }
                function stop(){
                        echo "鼠标卸载成功!<br/>";
                }
        }
       
        // 1、购买一个鼠标
        $m = new Mouse();
        // 2、准备一台电脑
        $c = new Computer();
        // 2、雇佣一个工人
        $p = new Person();
        // 3、让工人在电脑上使用鼠标
        $p->work($c, $m);
运行结果:
加载鼠标成功!
鼠标运行中...
鼠标卸载成功!
页: [1]
查看完整版本: PHP中多态的简单演示