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中的cookie
Nov 26 PHP
PHP setcookie() cannot modify header information 的解决方法
Jan 09 PHP
php变量范围介绍
Oct 15 PHP
php设置编码格式的方法
Mar 05 PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
Aug 20 PHP
PHP实现动态柱状图改进版
Mar 30 PHP
php数组分页实现方法
Apr 30 PHP
php 使用fopen函数创建、打开文件详解及实例代码
Sep 24 PHP
yii gridview实现时间段筛选功能
Aug 15 PHP
php-msf源码详解
Dec 25 PHP
解决Laravel无法使用COOKIE和SESSION的问题
Oct 16 PHP
php的instanceof和判断闭包Closure操作示例
Jan 26 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
PHP+MySQL 制作简单的留言本
2009/11/02 PHP
PHP 动态随机生成验证码类代码
2010/04/09 PHP
深入PHP变量存储的详解
2013/06/13 PHP
PHP实现登陆表单提交CSRF及验证码
2017/01/24 PHP
阿里对象存储OSS在laravel框架中的使用方法
2019/10/13 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
AngularJS HTML编译器介绍
2014/12/06 Javascript
JQuery报错Uncaught TypeError: Illegal invocation的处理方法
2015/03/13 Javascript
jquery实现全屏滚动
2015/12/28 Javascript
简单介绍jsonp 使用小结
2016/01/27 Javascript
JavaScript仿微博输入框效果(案例分析)
2016/12/06 Javascript
JavaScript类的继承方法小结【组合继承分析】
2018/07/11 Javascript
vue中引用swiper轮播插件的教程详解
2018/08/16 Javascript
详解基于electron制作一个node压缩图片的桌面应用
2019/01/29 Javascript
CKEditor 4.4.1 添加代码高亮显示插件功能教程【使用官方推荐Code Snippet插件】
2019/06/14 Javascript
electron+vue实现div contenteditable截图功能
2020/01/07 Javascript
解决vue项目中某一页面不想引用公共组件app.vue的问题
2020/08/14 Javascript
[07:03]显微镜下的DOTA2第九期——430圣堂刺客杀戮秀
2014/06/20 DOTA
python处理二进制数据的方法
2015/06/03 Python
python实现批量下载新浪博客的方法
2015/06/15 Python
Python函数式编程指南(三):迭代器详解
2015/06/24 Python
python+matplotlib演示电偶极子实例代码
2018/01/12 Python
用python实现k近邻算法的示例代码
2018/09/06 Python
Python selenium根据class定位页面元素的方法
2019/02/26 Python
Python3 实现串口两进程同时读写
2019/06/12 Python
Python之数据序列化(json、pickle、shelve)详解
2019/08/30 Python
解决pycharm启动后总是不停的updating indices...indexing的问题
2019/11/27 Python
Django模板之基本的 for 循环 和 List内容的显示方式
2020/03/31 Python
Python如何自动获取目标网站最新通知
2020/06/18 Python
美国东北部户外服装和设备零售商:Eastern Mountain Sports
2016/10/05 全球购物
Java的for语句中break, continue和return的区别
2013/12/19 面试题
书法培训心得体会
2014/01/05 职场文书
2015年乡镇人大工作总结
2015/04/22 职场文书
解析Java异步之call future
2021/06/14 Java/Android
Nginx实现负载均衡的项目实践
2022/03/18 Servers
关于CSS自定义属性与前端页面的主题切换问题
2022/03/21 HTML / CSS