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 相关文章推荐
用php和MySql来与ODBC数据连接
Oct 09 PHP
PHP APC配置文件2套和参数详解
Jun 11 PHP
CMS中PHP判断系统是否已经安装的方法示例
Jul 26 PHP
php中try catch捕获异常实例详解
Nov 21 PHP
PHP实现文件下载详解
Nov 27 PHP
php绘图之加载外部图片的方法
Jan 24 PHP
PHPExcel笔记, mpdf导出
May 03 PHP
thinkPHP5.0框架URL访问方法详解
Mar 18 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
Jun 13 PHP
php 处理png图片白色背景色改为透明色的实例代码
Dec 10 PHP
PHP simplexml_import_dom()函数讲解
Feb 03 PHP
关于laravel-admin ueditor 集成并解决刷新的问题
Oct 21 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
Discuz论坛密码与密保加密规则
2016/12/19 PHP
php获取指定数量随机字符串的方法
2017/02/06 PHP
PHP 网站修改默认访问文件的nginx配置
2017/05/27 PHP
laravel 解决强制跳转 https的问题
2019/10/22 PHP
phpcmsv9.0任意文件上传漏洞解析
2020/10/20 PHP
js substr支持中文截取函数代码(中文是双字节)
2013/04/17 Javascript
在表单提交前进行验证的几种方式整理
2013/07/31 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
js分页工具实例
2015/01/28 Javascript
JS实现在网页中弹出一个输入框的方法
2015/03/03 Javascript
angular.bind使用心得
2015/10/26 Javascript
javascript匀速运动实现方法分析
2016/01/08 Javascript
Bootstrap树形控件使用方法详解
2016/01/27 Javascript
复杂的javascript窗口分帧解析
2016/02/19 Javascript
javascript事件绑定学习要点
2016/03/09 Javascript
JavaScript实现Base64编码转换
2016/04/23 Javascript
Javascript学习之谈谈JS的全局变量跟局部变量(推荐)
2016/08/28 Javascript
移动端使用localStorage缓存Js和css文的方法(web开发)
2016/09/20 Javascript
浅谈Angular文字折叠展开组件的原理分析
2017/11/24 Javascript
Angular学习笔记之集成三方UI框架、控件的示例
2018/03/23 Javascript
python解析发往本机的数据包示例 (解析数据包)
2014/01/16 Python
Python中为什么要用self探讨
2015/04/14 Python
python检查字符串是否是正确ISBN的方法
2015/07/11 Python
对Python中list的倒序索引和切片实例讲解
2018/11/15 Python
python如何通过闭包实现计算器的功能
2020/02/22 Python
基于PyTorch中view的用法说明
2021/03/03 Python
简单说说tomcat的配置
2013/05/28 面试题
网络教育自我鉴定
2013/11/01 职场文书
捐资助学倡议书
2014/04/15 职场文书
消防标语大全
2014/06/07 职场文书
2014教师“四风问题”对照检查材料思想汇报
2014/09/16 职场文书
2014年保卫工作总结
2014/12/05 职场文书
花田少年史观后感
2015/06/16 职场文书
创业开店,这样方式更合理
2019/08/26 职场文书
如何更改Win11声音输出设备?Win11声音输出设备四种更改方法
2022/04/08 数码科技
新的CSS 伪类函数 :is() 和 :where()示例详解
2022/08/05 HTML / CSS