PHP基于接口技术实现简单的多态应用完整实例


Posted in PHP onApril 26, 2017

本文实例讲述了PHP基于接口技术实现简单的多态应用。分享给大家供大家参考,具体如下:

<?php
//实现多态的一个简单实例
interface USB{
  //接口中的方法权限必须是public,并且只有抽象方法或常量
  function mount();
  function work();
  function unmount();
}
class Upan implements USB{
  function mount(){
    echo "U盘被成功挂载!!<br>";
  }
  function work(){
    echo "U盘正在工作……<br>";
  }
  function unmount(){
    echo "U盘被成功卸载!!<br>";
  }
}
class ShuBiao implements USB{
  function mount(){
    echo "USB鼠标被成功插入!<br>";
  }
  function work(){
    echo "USB鼠标正在工作……<br>";
  }
  function unmount(){
    echo "USB鼠标被成功拔除!<br>";
  }
}
class DianNao{
  function useUSB($usb){    //这就是一种多态,当传进去的参数为不同的usb设备时,调用不同设备的相同的方法名,但产生了不同的效果
    $usb->mount();
    $usb->work();
    $usb->unmount();
  }
}
class Worker{
  function install(){
    $dn=new DianNao;  //激活电脑
    $up=new Upan;    //激活优盘
    $sb=new ShuBiao;  //激活鼠标
    $dn->useUSB($up);  //电脑访问优盘
    $dn->useUSB($sb);  //电脑访问鼠标
  }
}
$usb_user=new Worker;  //激活一个USB设备的使用者
$usb_user->install();  //使用者调用安装USB设备的方法
?>

实例运行效果:

PHP基于接口技术实现简单的多态应用完整实例

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
不用GD库生成当前时间的PNG格式图象的程序
Oct 09 PHP
PHP获取php,mysql,apche的版本信息示例代码
Jan 16 PHP
PHP的foreach中使用引用时需要注意的一个问题和解决方法
May 29 PHP
PHP 中提示undefined index如何解决(多种方法)
Mar 16 PHP
php微信公众平台开发(三)订阅事件处理
Dec 06 PHP
WAF的正确bypass
Jan 05 PHP
Yii框架批量插入数据扩展类的简单实现方法
May 23 PHP
PHP基于socket实现客户端和服务端通讯功能
Jul 13 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
Oct 30 PHP
PHP检查URL包含特定字符串实例方法
Feb 11 PHP
Laravel5.5 视图 - 创建视图和数据传递示例
Oct 21 PHP
thinkphp5 路由分发原理
Mar 18 PHP
PHP基于简单递归函数求一个数阶乘的方法示例
Apr 26 #PHP
php编程实现简单的网页版计算器功能示例
Apr 26 #PHP
Mac下php 5升级到php 7的步骤详解
Apr 26 #PHP
PHP中时间加减函数strtotime用法分析
Apr 26 #PHP
yii2中dropDownList实现二级和三级联动写法
Apr 26 #PHP
MAC下通过改apache配置文件切换php多版本的方法
Apr 26 #PHP
PHP编程计算日期间隔天数的方法
Apr 26 #PHP
You might like
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
2011/08/12 PHP
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
2014/07/15 PHP
php 计算两个时间相差的天数、小时数、分钟数、秒数详解及实例代码
2016/11/09 PHP
Laravel如何友好的修改.env配置文件详解
2017/06/07 PHP
php实现生成PDF文件的方法示例【基于FPDF类库】
2018/07/21 PHP
关于laravel框架中的常用目录路径函数
2019/10/23 PHP
extjs 初始化checkboxgroup值的代码
2011/09/21 Javascript
jquery解决图片路径不存在执行替换路径
2013/02/06 Javascript
Jquery实现Div上下移动示例
2014/04/23 Javascript
Jquery实现由下向上展开效果的例子
2014/12/08 Javascript
js事件监听器用法实例详解
2015/06/01 Javascript
基于jQuey实现鼠标滑过变色(整行变色)
2015/12/07 Javascript
jQuery简单倒计时效果完整示例
2016/09/20 Javascript
jQuery的ready方法实现原理分析
2016/10/26 Javascript
读Javascript高性能编程重点笔记
2016/12/21 Javascript
jQuery插件zTree实现获取一级节点数据的方法
2017/03/08 Javascript
js实现多张图片延迟加载效果
2017/07/17 Javascript
Bootstrap + AngularJS 实现简单的数据过滤字符查找功能
2017/07/27 Javascript
Node.js 的模块知识汇总
2017/08/16 Javascript
vue-resouce设置请求头的三种方法
2017/09/12 Javascript
vue+elementUI实现图片上传功能
2019/08/20 Javascript
[02:17]《辉夜杯》TRG战队巡礼
2015/10/26 DOTA
python机器学习库常用汇总
2017/11/15 Python
Python操作MySQL模拟银行转账
2018/03/12 Python
Python numpy 点数组去重的实例
2018/04/18 Python
python的格式化输出(format,%)实例详解
2018/06/01 Python
python 缺失值处理的方法(Imputation)
2019/07/02 Python
Python 词典(Dict) 加载与保存示例
2019/12/06 Python
香港迪士尼乐园酒店预订:Hong Kong Disneyland Hotels
2017/05/02 全球购物
墨西哥购物网站:Elektra
2020/01/21 全球购物
J2EE面试题集锦(附答案)
2013/08/16 面试题
高中打架检讨书
2014/02/13 职场文书
2014年售后服务工作总结
2014/11/18 职场文书
2015年大学学生会工作总结
2015/05/13 职场文书
家装电话营销开场白
2015/05/29 职场文书
MySQL 重写查询语句的三种策略
2021/05/10 MySQL