PHP接口interface详解
PHP interface详解
首先提三个问题
- 为什么要用接口?
- 什么是接口?
- 接口怎么使用?
什么是接口
使用关键词 interface 定义,就像是定义一个标准的类一样,但其中定义所有的方法都是空的,且必须是 公有的(接口也可以定义常量,接口常量和普通类常量一样,但接口常量只能是公有的)。
为什么要用接口
多人开发时,有时会遇到规范问题,比如两个人在不同类中要实现同一个功能,这时,两个人可能会起不一样的方法名,而接口就等于是提供了一种标准,大家要实现这个功能,都用这个方法名。
有人会问,那用继承不是更简单吗,的确如此,但PHP只支持单继承,如果想使用多个类的功能就很尴尬了,这时就可以用到接口了。
注:使用接口是让你再去实现一遍这个功能,而不是真的像继承一样,直接拿来用了
接口使用
类需要使用接口时,要用关键词 implements ,且类中必须实现接口定义的所有方法,不然会报一个致命错误。
Example1://定义接口A
interface A
{function func1();
}//类User 调用接口A,必须实现接口内函数的功能
class User implements A
{function func1(){......}
}
类可以使用多个接口
Example2://定义接口A
interface A
{function func1();
}//定义接口B
interface B
{function func2();
}//类User 调用接口A和B,必须实现接口内函数的功能
class User implements A,B
{function func1(){......}function func2(){......}
}
接口的继承
接口是可以继承的,且可以多继承
Example3://定义接口A
interface A
{function func1();
}//定义接口B
interface B extends A
{function func2();
}//类User 调用接口B,必须实现接口A和B内函数的功能
class User implements B
{function func1(){......}function func2(){......}
}
多继承
Example4://定义接口A
interface A
{function func1();
}//定义接口B
interface B
{function func2();
}//定义接口C
interface C extends A,B
{function func3();
}//类User 调用接口C,必须实现接口A、B、C内函数的功能
class User implements C
{function func1(){......}function func2(){......}function func3(){......}
}
PHP接口interface详解相关推荐
- 2接口详解_TS入门笔记2——TS接口进阶详解
TS入门笔记--TS接口进阶详解 一.为什么需要接口? let obj:object; // 定义了一个只能保存对象的变量 // obj = 1; // obj = "123"; ...
- JAVA元注解@interface详解(@Target,@Documented,@Retention,@Inherited)
转载自 JAVA元注解@interface详解(@Target,@Documented,@Retention,@Inherited) jdk1.5起开始提供了4个元注解,用来定义自定义注解的注解,它们 ...
- java 接口函数_Java函数式接口Supplier接口实例详解
这篇文章主要介绍了Java函数式接口Supplier接口实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 JDK提供了大量常用的函数式接口以丰 ...
- ILI9341的使用之【四】RGB接口操作详解
<ILI9341的使用之[一]TFT-LCD原理(转载)> <ILI9341的使用之[二]ILI9341介绍> <ILI9341的使用之[三]ILI9341系统通信接口模 ...
- java supplier接口_Java函数式接口Supplier接口实例详解
这篇文章主要介绍了Java函数式接口Supplier接口实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 JDK提供了大量常用的函数式接口以丰 ...
- 微信JS-SDK之图像接口开发详解
2019独角兽企业重金招聘Python工程师标准>>> 参考: 微信JS-SDK之图像接口开发详解 http://www.cnblogs.com/it-cen/p/4587812.h ...
- Java语言Socket接口用法详解
Socket接口用法详解 在Java中,基于TCP协议实现网络通信的类有两个,在客户端的Socket类和在服务器端的ServerSocket类,ServerSocket类的功能是建立一个Serve ...
- 转 LCD的接口类型详解
LCD的接口类型详解 LCD的接口有多种,分类很细.主要看LCD的驱动方式和控制方式,目前手机上的彩色LCD的连接方式一般有这么几种:MCU模式,RGB模式,SPI模式,VSYNC模式,MDDI模式, ...
- TP-LINK路由器作为副路由器之Lan接口连接详解
TP-LINK路由器作为副路由器之Lan接口连接详解 WiFi连接设置TP-LINK路由器作为局域网中的中继副路由器之Lan接口连接的方法,详解. 1.断开电脑的有线连接和WiFi连接的互联网. 1 ...
最新文章
- python 显示gif图像
- Golang sync.Map原理
- iOS适配问题 键盘变大 整个界面被拉伸
- OpenGL CPU光线跟踪
- 重温经典算法系列: 动态规划法
- 供给测结构性改革内容_智能包装结构,提高可测性
- Javascript -- 二叉树(查找删除功能实现)
- 快速清除字符串边上的空格
- iphone控制中心自定义没有计算机,如何在iPhone上自定义iOS 11控制中心功能
- 史上最全——QQ秘籍之全攻略
- web前端网页制作课作业:用DIV+CSS技术设计的静态网站【四大名著】中国传统文化主题题材设计
- uniapp分享到微信流程
- GitHub 标星 1000+ 的开源电子书
- 睦月、水无月、师走……日语12个月的称谓是怎么来的
- HCE OS------操作系统基础操作
- 高级计量经济学与stata应用
- 安卓驱动和linux驱动有什么不同
- 分享一套开源免费充电桩云平台(含硬件充电桩)(v2.3.2)
- 已提交内存过大_你还记得虚拟内存吗?可能就是你电脑故障的罪魁祸首!
- java 自定义异常 捕获_java – 自定义异常类不捕获异常