PHP interface详解

首先提三个问题

  1. 为什么要用接口?
  2. 什么是接口?
  3. 接口怎么使用?

什么是接口

使用关键词 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详解相关推荐

  1. 2接口详解_TS入门笔记2——TS接口进阶详解

    TS入门笔记--TS接口进阶详解 一.为什么需要接口? let obj:object; // 定义了一个只能保存对象的变量 // obj = 1; // obj = "123"; ...

  2. JAVA元注解@interface详解(@Target,@Documented,@Retention,@Inherited)

    转载自 JAVA元注解@interface详解(@Target,@Documented,@Retention,@Inherited) jdk1.5起开始提供了4个元注解,用来定义自定义注解的注解,它们 ...

  3. java 接口函数_Java函数式接口Supplier接口实例详解

    这篇文章主要介绍了Java函数式接口Supplier接口实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 JDK提供了大量常用的函数式接口以丰 ...

  4. ILI9341的使用之【四】RGB接口操作详解

    <ILI9341的使用之[一]TFT-LCD原理(转载)> <ILI9341的使用之[二]ILI9341介绍> <ILI9341的使用之[三]ILI9341系统通信接口模 ...

  5. java supplier接口_Java函数式接口Supplier接口实例详解

    这篇文章主要介绍了Java函数式接口Supplier接口实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 JDK提供了大量常用的函数式接口以丰 ...

  6. 微信JS-SDK之图像接口开发详解

    2019独角兽企业重金招聘Python工程师标准>>> 参考: 微信JS-SDK之图像接口开发详解 http://www.cnblogs.com/it-cen/p/4587812.h ...

  7. Java语言Socket接口用法详解

    Socket接口用法详解   在Java中,基于TCP协议实现网络通信的类有两个,在客户端的Socket类和在服务器端的ServerSocket类,ServerSocket类的功能是建立一个Serve ...

  8. 转 LCD的接口类型详解

    LCD的接口类型详解 LCD的接口有多种,分类很细.主要看LCD的驱动方式和控制方式,目前手机上的彩色LCD的连接方式一般有这么几种:MCU模式,RGB模式,SPI模式,VSYNC模式,MDDI模式, ...

  9. TP-LINK路由器作为副路由器之Lan接口连接详解

    TP-LINK路由器作为副路由器之Lan接口连接详解 WiFi连接设置TP-LINK路由器作为局域网中的中继副路由器之Lan接口连接的方法,详解. 1.断开电脑的有线连接和WiFi连接的互联网. 1 ...

最新文章

  1. python 显示gif图像
  2. Golang sync.Map原理
  3. iOS适配问题 键盘变大 整个界面被拉伸
  4. OpenGL CPU光线跟踪
  5. 重温经典算法系列: 动态规划法
  6. 供给测结构性改革内容_智能包装结构,提高可测性
  7. Javascript -- 二叉树(查找删除功能实现)
  8. 快速清除字符串边上的空格
  9. iphone控制中心自定义没有计算机,如何在iPhone上自定义iOS 11控制中心功能
  10. 史上最全——QQ秘籍之全攻略
  11. web前端网页制作课作业:用DIV+CSS技术设计的静态网站【四大名著】中国传统文化主题题材设计
  12. uniapp分享到微信流程
  13. GitHub 标星 1000+ 的开源电子书
  14. 睦月、水无月、师走……日语12个月的称谓是怎么来的
  15. HCE OS------操作系统基础操作
  16. 高级计量经济学与stata应用
  17. 安卓驱动和linux驱动有什么不同
  18. 分享一套开源免费充电桩云平台(含硬件充电桩)(v2.3.2)
  19. 已提交内存过大_你还记得虚拟内存吗?可能就是你电脑故障的罪魁祸首!
  20. java 自定义异常 捕获_java – 自定义异常类不捕获异常

热门文章

  1. 运筹学计算机求解运输,运筹学上机报告运输问题的计算机求解.doc
  2. 引用网络jQuery地址
  3. 物理大地测量学笔记(一)
  4. 超酷XP2008音效特别正式版 开关机音乐的又一力作
  5. STM32F103音乐播放器与游戏机
  6. 泛微OA V8 SQL注入漏洞和文件上传漏洞
  7. 淘宝历史价格查询php源码,记录历史采购价并在列表中显示最低价
  8. Unity实战(3):pureMVC框架应用
  9. 高效开发(一):装机必备
  10. costmap_2d详解3:costmap_2d_ros.cpp