PHP 对象 多态性
/** 多态特性* 1.程序扩展准备* 必须有继承关系,父类最好是接口或抽象类*///定义接口
interface USB{const WIDTH = 12;const HEIGHT = 3;function load();function run();function stop();
}
//定义电脑类
class Computer{function useUSB(USB $usb){$usb->load();$usb->run();$usb->stop();}
}//定义鼠标类 实现USB接口
class Mouse implements USB{function load(){echo '加载鼠标成功!<br/>';}function run(){echo '运行鼠标功能!<br/>';}function stop(){echo '鼠标工作结束!<br/>';}
}//定义键盘类 实现USB接口
class KeyBoard implements USB{function load(){echo '加载键盘成功!<br/>';}function run(){echo '运行键盘功能!<br/>';}function stop(){echo '键盘工作结束!<br/>';}
}//定义工作者类
class Worker{function useC(){$c = new Computer();$m = new Mouse();$k = new KeyBoard();//调用电脑类中的方法 传入鼠标对象参数$c->useUSB($m);//调用电脑类中的方法 传入键盘对象参数$c->useUSB($k);}
}
$w = new Worker();
$w->useC();
转载于:https://blog.51cto.com/11410485/1845171
PHP 对象 多态性相关推荐
- 面向对象之对象的多态性
多态性是一种允许使用一个界面来访问一类动作的特性,特定的动作可以由不同的具体情况而定(传入不同的参数).多态性是发送消息给某个对象,让该对象自行决定响应何种行为 通过将子类对象引用赋值给超类对象引用变 ...
- java基础----多态性
多态性 在面向对象中多态性实际上是面向对象里的一个最大的最有用的特点,对于多态性在java中有两种体现: 1. 方法的重载及覆写 2. 对象多态性:指的是父类对象和子类对象之间的转型操作 一.对象 ...
- Java学习----多态性
今日学习多态性如下: 多态性 多态性是一种允许使用一个界面来访问一类动作的特性,特定的动作可以由不同的具体情况而定(传入不同的参数).多态性是发送消息给某个对象,让该对象自行决定响应何种行为. 通过将 ...
- JAVA初级(十七)对象之三大特性:多态
本章介绍多态 多态就是一个行为有多个不同的表现形式.比如打印机,同样是打印的动作它分为彩印和黑白印等.同样是插usb接口,有的是为了传输文件,有的为了充电等. 1,多态在代码中如何体现? (1)接口 ...
- JAVA第二次验证设计性实验报告
[实验任务一]:素数输出 (3)实验报告中要求包括程序设计思想.程序流程图.源代码.运行结果截图.编译错误分析等内容. 1. 实验内容 (1)计算并输出3~100之间的素数. (2)编程满足下列要 ...
- Java学习笔记07--日期操作类
一.Date类 在java.util包中定义了Date类,Date类本身使用非常简单,直接输出其实例化对象即可. public class T { public static void main(St ...
- 李兴华html css,2014MLDN(李兴华老师视频教程)
资源内容: 2014MLDN(李兴华老师视频教程)|____开发工具 |____ideaIU-15.0.3.exe |____ideaIU-15.0.2.exe ...
- 字节流与字符流的区别(good!)
字节流与字符流的区别 字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了 ...
- android文件的读取方法,Android读取写入文件的方法
参考地址:https://blog.csdn.net/harry_helei/article/details/64910713 1.按行读取指定文件 /** * 按行读取指定文件,输出到ArrayLi ...
最新文章
- mysql主键自增长空缺_Mysql 主键自增长auto_increment问题分析
- 基于 Express 与 Mongodb 的简易 实现一个多人 blog
- 分享产品发布的10条经验
- poj2750 PottedFlower(线段树的环状操作)
- Xcode 4 with External Static Library for iPhone Development
- MessageDigest简介
- 设计模式(一)---单一职责原则
- 企业任务管理工具“日事清”获星河互联1000万A轮融资
- linux shell 之 crontab(定时任务)详解
- php框架 tp laravel,TP框架和Laravel框架的区别是什么
- SPSS Modeler 神经网络实践案例(第十四章)
- 吉首大学2019年程序设计竞赛(重现赛)
- Connectionist Temporal Classification: Labelling Unsegmented Sequence Data with Recurrent Neural Netw
- 图像处理研究中心系统 包含去噪 蜕变 去痘痘等操作
- 怪异,漂亮的几个数学恒等式(转)
- ORA-01034 ORACLE not available
- 天蝎座2006年运程
- wtc java 代码 tpcall(servicename_WebLogic下WTC Service的配置
- matlab中unifrnd函数用法,概率和统计的MATLAB指令
- Twitter只剩下两个硬核程序员了!
热门文章
- 【Oracle】ORA-06510: PL/SQL: 用户定义的异常错误未得到处理
- 【Python-2.7】切片
- Kali linux 2016.2(Rolling)之 Nessus安装及Plugins Download Fail 解决方法
- maven文件报错(pom.xml或者jar包缺失)解决方法
- layui table 表格两种赋值方式下,data分页效果有效, url分页效果的失效 问题的解决。
- 错误:invalid_client没有应用程序名称
- springMVC视图解析器的配置和使用
- 用c 语言写出五子棋的代码,C语言案例:控制台版本的五子棋游戏【代码】
- 什么是AWT_Swing_Scroll面板,上!!!
- 测试JUC安全类型的集合(Java)