PHP接口学习
接口:不同类的共同行为进行定义,然后在不同类中实现不同的功能。
接口的具体语法:
接口是零件可以用多个零件组成一个新东西;
接口本身是抽象的,内部申明的方法也是抽象的; 不用加abstract
一个类可以一次性实现多个接口。语法用implements实现,然后在把接口的功能实现;
接口也可以基继承,用extends;
接口是一堆方法的说明,不能加属性(成员变量);
接口就是供组装成类用的,方法只能用public;
接口作为一种严格规范 降低开发者与调用者的沟通
1、接口实现
举例 人类、动物实现某个动作
定义接口
- interface Action(){
- //接口定义‘public’访问属性方法,无需实现方法
- public function eat( $foods );
- }
Human ( Animl ) 类实现接口
- class Human implements Action(){
- //实现接口,必须提供接口中定义的方法
- public function eat( $foods){
- echo "Human eat {$foods}";
- }
- }
- #Animal类
- class Animal implements Action(){
- public function eat( $foods){
- echo "Animal eat {$foods}";
- }
- }
Human( Animal )实现eat的动作:
- $human = new Human();
- $human->eat();
- $animal = new Animal();
- $animal->eat();
instanceof 判断某个对象是否实现了某个接口
- function CheckEat( $obj ){
- if( $obj instanceof Action ){
- $obj->eat( 'orange' );
- }else{
- echo "the object not implements Action";
- }
- }
- CheckEat( $human );
- CheckEat( $animal );
2、接口继承
- //extends 让接口继承接口
- interface IcanPee extends Action(){
- public function pee();
- }
- //当类实现子接口时,父接口定义的方法也需要在这个类里面具体实现
- Class Human1 implements IcanPee(){
- public function pee(){ }
- public function eat( $foods ){ }
- }
某个类实现(implements)了某个接口和继承(extends)了某个类的区别?
实现接口和继承很类似,但接口不能直接创建自己的对象
继承的父类必须有该方法的具体实现,子类可以重写父类的方法,也可以不写
接口里面的方法是不需要具体实现的,只要定义了方法的名称和参数即可,具体的实现必须在实现类中定义
一句话概括: 类的方法必须有实现,接口的方法必须为空。
PHP接口学习的更多相关文章
- C# 常用接口学习 ICollection<T>
C# 常用接口学习 ICollection<T> 作者:乌龙哈里 时间:2015-11-01 平台:Window7 64bit,Visual Studio Community 2015 参 ...
- C# 常用接口学习 IComparable 和 IComparer
C# 常用接口学习 IComparable 和 IComparer 作者:乌龙哈里 时间:2015-11-01 平台:Window7 64bit,Visual Studio Community 201 ...
- 工程化编程实战callback接口学习笔记
一.编译并运行 help.version命令执行正常,但quit命令出错 二.Debug 从命令输入到执行过程: 源代码: 更改后: 运行结果:能正确运行quit命令 Callback接口学习成果: ...
- caffe的python接口学习(1):生成配置文件
caffe是C++语言写的,可能很多人不太熟悉,因此想用更简单的脚本语言来实现.caffe提供matlab接口和python接口,这两种语言就非常简单,而且非常容易进行可视化,使得学习更加快速,理解更 ...
- PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [3] 首页 APP 接口开发方案 ② 读取缓存方式
以静态缓存为例. 修改 file.php line:11 去掉 path 参数(方便),加上缓存时间参数: public function cacheData($k,$v = '',$cacheTim ...
- OpenCV(C++接口)学习笔记1-图像读取、显示、保存
OpenCV在2.0加入版本号之后C++接口函数,学习前C语言的接口功能.现在OpenCV它已被发展到2.4.9版本号,所以,我决定学习C++接口函数,与步伐. 1.创建图像 cv::Mat imag ...
- C# 常用接口学习 IEnumerable<T>
作者:乌龙哈里 时间:2015-10-24 平台:Window7 64bit,Visual Studio Community 2015 本文参考: MSDN IEnumerable<T> ...
- java Thread 接口学习
对于程序员来说 Thread应该都不会陌生,具体的接口调用不是本篇的重点.Thread的基本概念及接口的使用:java多线程 下面将更多的从底层实现角度讲一下Thread. Thread的声明如下: ...
- JDBC 接口学习
说明:文章所有内容皆选自实验楼教程[JDBC 入门教程],想要学习更多JDBC,可以点击教程进行学习~ JDBC 简介 JDBC 的全称是 Java Database Connectivity,叫做 ...
- JMeter接口学习笔记2017
协议学习地址:http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html 本篇学习笔记来自于慕课网上学习JMeter的学习笔记 学习 ...
随机推荐
- Webdriver API之操作(二)
一.窗口截图 dirver.get_screenshot_as_file("D:\\report\\image\\xxx.jpg") 二.关闭窗口 dirver.close() # ...
- 转载---关于Spring的69个面试问答
链接:http://www.importnew.com/11657.html 目录 Spring概述 依赖注入 Spring Beans Spring注解 Spring的对象访问 Spring面向切面 ...
- 关于REST的浅显了解
REST 是一种软件架构风格 1.定义 REST即表述性状态传递(Representational State Transfer) 是一组架构约束条件和原则.是设计风格而不是标准. 满足这些约束条件和 ...
- HashMap负载因子
下面是HashMap的一个构造函数,两个参数initialCapacity,loadFactor 这关系HashMap的迭代性能. /** * Constructs an empty <tt&g ...
- Html5浏览器支持
HTML5 浏览器支持 把 HTML5 元素定义为块级元素 语义块级displayblock实例 header, section, footer, aside, nav, main, article, ...
- Angular2.js——表单(上)
表单创建一个有效.引人注目的数据输入体验.Angular表单协调一组数据绑定控件,跟踪变更.验证输入的有效性,并且显示错误信息. 接下来,主要内容有: 1.使用组件和模板构建Angular表单: 2. ...
- Java中Properties类
1 简介: JDK提供的java.util.Properties类继承自Hashtable类并且实现了Map接口,用map来存储key-value数据,所以存入的数据是无序的.其中键和值都是字符串类型 ...
- Yii框架后续
关于Yii框架遗留的知识点. 1.url路由方式 (1).问号传参(默认) eg: http://localhost/项目/app/index.php http://localhost/项目/app/ ...
- YAHOO 34 条前端优化建议
雅虎团队经验:网站页面性能优化的34条黄金守则 1.尽量减少HTTP请求次数 终端用户响应的时间中,有80%用于下载各项内容.这部分时间包括下载页面中的图像.样式表.脚本.Flash等.通 ...
- hdu3555 Bomb 数位DP入门
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3555 简单的数位DP入门题目 思路和hdu2089基本一样 直接贴代码了,代码里有详细的注释 代码: ...