年年有"余"

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1833|回复: 0

PHP中多态的简单演示

[复制链接]
  • TA的每日心情

    2024-10-15 10:05
  • 签到天数: 372 天

    [LV.9]以坛为家II

    发表于 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);

    运行结果:
    加载鼠标成功!
    鼠标运行中...
    鼠标卸载成功!
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    手机版|小黑屋|Archiver|iOS开发笔记 ( 湘ICP备14010846号 )

    GMT+8, 2024-12-22 18:05 , Processed in 0.043277 second(s), 18 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表