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类 可以参考学习熟悉下
Jun 21 PHP
PHP 网络开发详解之远程文件包含漏洞
Apr 25 PHP
解析php类的注册与自动加载
Jul 05 PHP
一个简单且很好用的php分页类
Oct 26 PHP
PHP字符串的递增和递减示例介绍
Feb 11 PHP
PHP实现服务器状态监控的方法
Dec 09 PHP
PHP中的常见魔术方法功能作用及用法实例
Jul 01 PHP
yii2使用gridView实现下拉列表筛选数据
Apr 10 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
Jul 22 PHP
PHP实现的各类hash算法长度及性能测试实例
Aug 27 PHP
PHPTree――php快速生成无限级分类
Mar 30 PHP
php 函数中静态变量使用的问题实例分析
Mar 05 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
咖啡冲泡指南 咖啡有哪些制作方式 单品咖啡 意式咖啡
2021/03/06 冲泡冲煮
php实现简单的语法高亮函数实例分析
2015/04/27 PHP
PHP7新特性之抽象语法树(AST)带来的变化详解
2018/07/17 PHP
JS location几个方法小姐
2008/07/09 Javascript
javascript弹出拖动窗口
2015/08/11 Javascript
利用AJAX实现WordPress中的文章列表及评论的分页功能
2016/05/17 Javascript
全面解析Bootstrap中Carousel轮播的使用方法
2016/06/13 Javascript
AngularJS 入门教程之事件处理器详解
2016/08/19 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(三)
2016/09/14 Javascript
seajs模块之间依赖的加载以及模块的执行
2016/10/21 Javascript
JS解决移动web开发手机输入框弹出的问题
2017/03/31 Javascript
jQuery Pagination分页插件_动力节点Java学院整理
2017/07/17 jQuery
vue+vue-router转场动画的实例代码
2018/09/01 Javascript
Vue项目中ESlint规范示例代码
2019/07/04 Javascript
vue获取data数据改变前后的值方法
2019/11/07 Javascript
[01:41]DOTA2超级联赛专访YYF 称一辈子难忘TI2
2013/05/28 DOTA
[00:14]PWL:老朋友Mushi拍VLOG与中国玩家问好
2020/11/04 DOTA
python检测服务器是否正常
2014/02/16 Python
python处理xml文件的方法小结
2017/05/02 Python
Python实现识别手写数字 Python图片读入与处理
2020/03/23 Python
python按时间排序目录下的文件实现方法
2018/10/17 Python
python多线程http压力测试脚本
2019/06/25 Python
在Python3 numpy中mean和average的区别详解
2019/08/24 Python
python3.7通过thrift操作hbase的示例代码
2020/01/14 Python
python新手学习使用库
2020/06/11 Python
django models里数据表插入数据id自增操作
2020/07/15 Python
Python3爬虫中关于中文分词的详解
2020/07/29 Python
amaze ui 的使用详细教程
2020/08/19 HTML / CSS
英国人最爱的饰品网站:Accessorize
2016/08/22 全球购物
经济管理自荐书
2014/06/09 职场文书
公司周年庆典标语
2014/10/07 职场文书
优秀教师个人材料
2014/12/15 职场文书
小学教师党员承诺书
2015/04/27 职场文书
2015年中学校长工作总结
2015/05/19 职场文书
详解jQuery的核心函数和事件处理
2022/02/18 jQuery
使用Python解决图表与画布的间距问题
2022/04/11 Python